- 博客(431)
- 资源 (8)
- 收藏
- 关注

原创 C++协程从入门到精通
协程(coroutine)是一种特殊的函数,它可以被暂停(suspend)、恢复执行(resume),并且一个协程可以被多次调用。C++中的协程属于stackless协程,即协程被suspend时不需要堆栈。C++20开始引入协程,围绕协程实现的相应组件较多,如co_wait、co_return、co_yield,promise,handle等组件,灵活性高,组件之间的关系也略复杂,这使得C++协程学习起来有一定难度。协程与传统函数不同,普通函数是线程相关的,函数的状态跟线程紧密关联;而协程是线程无关的,它
2025-05-06 02:30:00
2372
24

原创 金仓数据库KingbaseES技术实践类深度剖析与实战指南
例如,在一个企业级项目中,原本使用Oracle数据库的开发团队,在迁移到KingbaseES时,由于KingbaseES支持Oracle语法,开发人员无需花费大量时间去学习新的语法,只需对少量与Oracle不同的特性进行了解和调整,就可以快速上手,继续进行项目开发。例如,在一个分布式集群中,通过监控节点的CPU使用率、内存使用率和磁盘I/O吞吐量等指标,可以及时发现节点的异常情况,并提前采取措施进行处理,避免故障的发生。例如,针对国产芯片的指令集特点,优化数据库的查询执行计划,减少不必要的指令开销。
2025-04-25 23:05:12
12495
55

原创 金仓数据库 KingbaseES 产品深度优化提案:迈向卓越的全面升级
然而,随着技术的不断进步和市场需求的日益增长,为了使 KingbaseES 能够更好地适应复杂多变的业务场景,满足用户对高性能、高安全和高可扩展性的要求,对其进行全面且深入的优化显得尤为迫切。在未来的发展中,KingbaseES 将凭借持续的优化和创新,在国产数据库市场中占据更加重要的地位,为各行业的信息化建设提供更加坚实的支持。引入基于代价的查询优化算法,如动态规划算法、贪心算法等,可以根据数据的统计信息、索引分布和查询条件,对不同的执行计划进行代价评估,从而选择最优的执行计划。
2025-04-25 11:09:51
13446
79

原创 解锁 AI 开发的无限可能:邀请您加入 coze-sharp 开源项目
coze-sharp 是一个轻量级且强大的工具,它将 C# 的开发优势与 Coze AI 的智能能力无缝结合。Coze 是一个新兴的 AI 聊天机器人平台,支持自然语言处理、对话生成等功能,而 coze-sharp 则是它的 C# 语言桥梁。现在加入,您将与我们一起定义它的方向,用代码开启 AI 的无限可能。未来,它可能会成为 .NET 生态中 AI 开发的重要一员——而这一切,离不开您的参与。现在加入,您不仅能体验到一个新颖的 AI 工具,还能直接参与它的成长,塑造它的未来!
2025-03-14 00:00:00
2063
14
原创 C++23 views::slide (P2442R1) 深入解析
简单来说,Range就是一种可以遍历的序列,你可以把它想象成更智能、更灵活的数组或者容器。C++20引入了Ranges这个概念,让我们可以更方便地操作这些序列。例如,我们可以使用Ranges来过滤、转换、拼接序列等。和是C++23引入的新特性。slide_view是一个范围适配器,它接受一个view和一个数字n,并产生一个视图,其第m个元素(一个“窗口”)是原始视图的第m个到第个元素的视图。令s如果s >= n,则为s - n + 1;否则为0,并且生成的视图为空。表示一个。给定子表达式e和n。
2025-05-13 00:00:00
534
原创 基于ASUS Tinker Board2s 的小易AI智能体项目实现
是项目的配套平台,供大家免费使用。提前创建扣子智能体、新建授权码在上方小易平台上注册刚创建的智能体组装开发板、屏幕、麦克风、喇叭,然后在华硕开发板内拉取小易开源项目并使用dotnet run来运行项目,或者编译项目后打包到开发板内直接运行也可。最终你就拥有了一个可以对话可以文字聊天的2D在线小易。
2025-05-12 18:27:20
581
1
原创 C++23 新特性:深入解析 std::views::join_with(P2441R2)
是C++23标准中一个非常实用的新特性,它通过提供索引和元素的组合,简化了对集合中元素及其索引的访问。这不仅提高了代码的可读性和效率,还增加了灵活性,使得开发者可以更加方便地处理需要索引信息的场景。随着C++23标准的推广,无疑将成为开发者工具箱中的一个重要工具。
2025-05-12 00:00:00
648
原创 C++23 views::repeat (P2474R2) 深入解析
简单来说,Range就是一种可以遍历的序列,你可以把它想象成更智能、更灵活的数组或者容器。C++20引入了Ranges这个概念,让我们可以更方便地操作这些序列。例如,我们可以使用Ranges来过滤、转换、拼接序列等。和是C++23引入的新特性,它们是一个范围工厂,通过重复生成相同的值来生成元素序列。可以是有界的或无界的(无限)。对于任何合适的子表达式e和f和分别是 expression-equivalent 到和(具有相同的效果)。
2025-05-12 00:00:00
773
原创 C++23 views::repeat (P2474R2) 写一篇博客
是 C++23 标准中新增的一个视图,它将索引和元素组合在一起,以元组的形式返回。这使得在处理集合时,可以同时访问元素及其索引,而无需手动维护索引计数器。是 C++23 标准中一个非常实用的新特性,它通过提供索引和元素的组合,简化了对集合中元素及其索引的访问。这不仅提高了代码的可读性和效率,还增加了灵活性,使得开发者可以更加方便地处理需要索引信息的场景。随着 C++23 标准的推广,无疑将成为开发者工具箱中的一个重要工具。
2025-05-11 09:19:47
313
原创 虚拟内存:深入解析与性能优化
虚拟内存是现代操作系统中不可或缺的一部分,它通过扩展物理内存和提供内存保护,极大地提高了计算机的性能和稳定性。尽管它也带来了一些挑战,如性能开销和硬盘空间需求,但通过合理的配置和管理,这些挑战可以得到有效的控制。在现代计算机系统中,虚拟内存(Virtual Memory)是一种至关重要的技术,它极大地提高了系统的多任务处理能力和内存利用率。虚拟内存是一种内存管理技术,它通过将物理内存扩展到硬盘上的一个区域(称为交换空间或页面文件),使得程序可以使用比实际物理内存更多的内存。这个过程称为页面置换。
2025-05-11 09:07:39
851
原创 C++23 中的 views::chunk:深入探索与应用
是 C++23 中的一个非常实用的范围适配器,它允许我们将一个范围划分为多个固定大小的子范围(块)。这在处理大量数据时非常有用,可以显著提高代码的可读性和效率。可以与其他范围适配器组合使用,以实现更复杂的功能。目前,已经得到了部分编译器的支持,我们可以开始在项目中使用它。
2025-05-10 00:00:00
1062
原创 C++23 views::chunk_by (P2443R1) 详解
在深入了解之前,我们先来简单回顾一下C++20引入的范围库(Ranges library)。范围库是C++20的一个主要组成部分,它提供了一种新的方法来处理容器中的元素序列,使得代码更加简洁和可读。是C++23中引入的一个范围适配器,它接受一个视图和一个可调用对象(二元谓词),并通过在每对相邻元素之间拆分底层视图来生成一个子范围(块)的视图。对于这些元素,谓词返回false。每对元素中的第一个元素属于前一个块,第二个元素属于下一个块。在标题<ranges>
2025-05-10 00:00:00
897
原创 探索 C++23 的 views::cartesian_product
作为 C++23 的一个重要新增特性,为我们处理多个范围的组合问题提供了一种简洁、高效且灵活的方法。它不仅提高了代码的可读性和可维护性,还能够与其他范围适配器协同工作,实现更复杂的数据处理逻辑。随着 C++23 标准的逐渐普及和编译器支持的不断完善,将在未来的 C++ 开发中发挥越来越重要的作用,帮助开发者更轻松地应对各种编程挑战。
2025-05-09 00:00:00
905
原创 C++23 views::as_rvalue (P2446R2) 深入解析
简单来说,Range就是一种可以遍历的序列,你可以把它想象成更智能、更灵活的数组或者容器。C++20引入了Ranges这个概念,让我们可以更方便地操作这些序列。例如,我们可以使用Ranges来过滤、转换、拼接序列等。和是C++23引入的两个新特性,它们实际上是在Ranges中进行std::move的动作。是一个RangeAdaptorObject,它可以将输入范围的元素转换为右值引用,从而实现移动语义。以下是。
2025-05-09 00:00:00
860
原创 C++23 新视角:使用 std::views::as_const 提升范围的常量正确性
是 C++23 范围库中一个虽小但重要的补充。它通过提供一种明确的方式来获取任何范围的常量视图,解决了在复杂场景下(尤其是涉及代理对象或不完美传播常量性的视图时)维护常量正确性的挑战。通过在适当的时候使用,C++ 开发者可以编写出更安全、更清晰、更健壮的范围处理代码。拥抱这个新工具,让你的 C++ 代码在常量正确性方面更上一层楼!
2025-05-08 00:30:00
555
原创 C++23 新特性:views::adjacent 与 views::adjacent_transform
和作为 C++23 的新特性,为处理相邻元素提供了更强大、便捷的工具。它们在数据处理、算法实现等领域都有着广泛的应用前景,可以帮助开发者编写出更简洁、高效、易读的代码。随着 C++23 的不断普及和应用,这些新特性将逐渐得到更多的关注和使用。
2025-05-08 00:30:00
577
原创 C++23 新利器:深入解析栈踪迹库 (P0881R7)
C++23 的库是 C++ 语言在开发者体验和实用性方面迈出的重要一步。它提供了一个期待已久的标准化工具,用于捕获和处理调用栈信息,极大地简化了调试、错误诊断和日志记录等任务。虽然开发者仍需注意编译选项和潜在的性能影响,但这一新特性无疑将成为 C++ 开发者工具箱中的宝贵补充,帮助我们构建更健壮、更易于维护的应用程序。随着编译器对 C++23 的支持逐渐完善,我们期待栈踪迹库在实际项目中得到广泛应用。
2025-05-07 00:00:00
804
1
原创 C++23 std::generator:用于范围的同步协程生成器 (P2502R2, P2787R0)
C++23是C++编程的下一个主要版本,它引入了多项新的语言特性和标准库增强,旨在提升语言的功能和开发效率。例如,Lambda表达式支持Attributes,并且可以省略括号;推进对标准库模块的支持,预计编译速度将提升10倍;引入模块化编程,有助于提高代码的组织性和可维护性等。而则是标准库中一个非常实用的新特性。在头文件template<class Ref,C++23的为开发者提供了一种强大而灵活的方式来处理范围和协程。
2025-05-07 00:00:00
2054
原创 C++23 std::basic_common_reference针对std::reference_wrapper的特化产生引用
C++23中针对的特化产生引用类型这一特性,是C++标准库的一个重要改进。它解决了C++20中对于处理的问题,提高了代码的一致性和可读性。通过实际应用场景的介绍,我们可以看到这一特性在容器操作和函数模板类型推导等方面的优势。在未来的C++开发中,我们可以充分利用这一特性来简化代码,提高开发效率。
2025-05-06 02:30:00
967
原创 C++23 新特性:为 std::pair 的转发构造函数添加默认实参
C++23 为std::pair的转发构造函数添加默认实参,这一改进显著提升了std::pair的灵活性和易用性。通过支持默认实参,std::pair的构造变得更加简洁,同时也减少了代码的冗余和潜在错误。这一特性不仅适用于简单的数据结构,还与模板编程、和等高级特性协同工作得更好。总之,C++23 的这一改进是标准库演进的一个重要里程碑,它让std::pair更加强大和灵活。希望本文能帮助你更好地理解和使用这一特性。如果你有任何问题或想法,欢迎在评论区留言讨论!
2025-05-05 00:00:00
1169
原创 C++23 std::tuple与其他元组式对象的兼容 (P2165R4)
std::tuple是C++标准库中的一个模板类,定义在<tuple>头文件中。它是一种固定大小的异构值集合,允许将不同类型的数据组合成一个单一的对象,这些数据可以通过它们的位置(索引)来访问。// 定义一个包含三种类型(int, double, std::string)的元组// 访问元素// 获取第一个元素,值为10// 获取第二个元素,值为3.14// 获取第三个元素,值为"Hello"return 0;在这个示例中,我们创建了一个包含intdouble和类型的元组,并使用。
2025-05-05 00:00:00
1434
原创 C++23 的新特性:std::unreachable
是 C++23 中一个非常有用的特性,它可以帮助开发者明确标记不可达代码,从而让编译器进行更激进的优化。通过减少不必要的代码和警告,可以提高代码的可读性和可维护性。同时,它还可以在调试构建中捕获潜在的错误。总之,是一个值得在日常开发中使用的工具。
2025-05-04 02:45:00
611
原创 C++23中std::optional和std::expected的单子式操作
C++23中为和引入的单子式操作(transform、or_else与and_then)为C++编程带来了更强大的功能和更简洁的代码风格。这些操作借鉴了函数式编程的思想,使得我们可以更方便地处理可选值和错误情况,避免了大量的手动错误检查和嵌套的if-else语句,提高了代码的可读性和可维护性。在实际开发中,合理使用这些操作可以让我们的代码更加健壮和优雅。
2025-05-04 02:45:00
599
原创 探索 C++23 std::to_underlying:枚举底层值获取的利器
是 C++23 为开发者带来的一个实用工具函数,它为获取枚举的底层值提供了一种更安全、更清晰的方式。通过使用,可以提高代码的可读性和可维护性,避免因枚举底层类型变化而带来的潜在错误。在实际开发中,当需要将枚举转换为其底层类型时,建议优先使用。相信随着 C++23 的逐渐普及,会在更多的项目中得到广泛应用。
2025-05-03 22:28:31
1334
原创 DeepSeek-Prover-V2-671B:AI在数学定理证明领域的重大突破
DeepSeek-Prover-V2-671B是一个拥有6710亿参数的超大规模语言模型,专为在Lean 4证明辅助框架中进行自动定理证明而设计。该模型基于DeepSeek-V3的混合专家(MoE)架构,通过动态参数激活机制,每次推理仅调用约370亿参数,显著提升了计算效率。DeepSeek-Prover-V2-671B是AI在数学定理证明领域的重大突破。它不仅在规模和性能上超越了前代模型,还通过高效的推理设计和强化学习训练策略,使其在复杂数学问题的解决上表现出色。
2025-05-03 22:25:31
791
原创 软考:硬件中的CPU架构、存储系统(Cache、虚拟内存)、I/O设备与接口
在本系列博客中,我们详细探讨了软件设计师考试中硬件部分的核心知识点,包括CPU架构、存储系统以及I/O设备与接口。这些知识点对于理解计算机系统的工作原理和优化软件性能至关重要。下面,我们将总结这些核心知识点,并提供一些准备软件设计师考试的建议。
2025-05-01 00:00:00
751
原创 C++23 std::invoke_r:调用可调用 (Callable) 对象 (P2136R3)
定义于头文件invoke_r( F&& f, Args&&... args ) noexcept(/* 见下方 */);它通过可调用对象f,以参数args调用,如同。此重载仅在为true时参与重载决议。
2025-04-30 14:04:43
980
原创 C++23 std::byteswap:反转字节 (P1272R4)
C++23引入的为开发者提供了一种简洁、高效且标准的方式来反转整数类型的字节序。它在跨平台数据交换、网络编程、数据处理和存储等场景中具有重要的应用价值。通过P1272R4提案,的设计和规范得到了明确和标准化,使得开发者能够更加方便地使用这一功能。与其他字节序转换方法相比,具有更好的通用性和可移植性。随着C++23的逐渐普及,有望成为开发者处理字节序问题的常用工具之一。
2025-04-30 00:00:00
1798
原创 C++23中的std::forward_like:完美转发的增强
是C++23标准中一个重要的新特性,它为模板编程中的完美转发提供了更强大的功能。通过根据参考对象的值类别调整转发行为,在成员访问、Lambda表达式、容器和智能指针等场景中展示了其强大的灵活性和。
2025-04-30 00:00:00
993
原创 C++23 std::bind_back:一种调用包装器 (P2387R3)
是C++23中引入的一个函数模板,在标头中定义。它为f生成转发调用包装。调用此包装等价于绑定尾个参数到args再调用f。换言之,等价于。是C++23中一个非常实用的新特性,它为开发者在处理函数调用和参数绑定时提供了更多的灵活性。通过将参数绑定到可调用对象的后面,可以简化回调函数、部分应用参数等。与std::bind和相比,它具有自己独特的优势和适用场景。在实际开发中,我们可以根据具体的需求选择合适的绑定工具。
2025-04-29 00:00:00
1077
原创 人脑、深思考大模型与其他大模型的区别科普
对比项目深思考大模型其他大模型人脑架构与技术专注多模态和类脑人工智能技术,架构设计侧重多模态数据深度语义理解和处理大多采用Transformer架构,部分有创新架构由约860亿个神经元通过突触连接形成复杂网络,各区域有不同功能分工训练数据结合特定垂直场景数据,如医疗数据来源广泛,特定领域专业性可能不足通过经验、教育和文化传承积累知识应用场景智能终端人机交互、重疾早筛等垂直场景开放域对话、创意内容生成等适用于各种生活、学习、工作场景,具有高度灵活性提示词编写。
2025-04-29 00:00:00
1151
原创 C++23 std::move_only_function:一种仅可移动的可调用包装器 (P0288R9)
是一个通用的多态函数包装器,定义于头文件中。它可以存储和调用任何可构造的(不要求是可移动构造的)可调用目标,包括函数、lambda表达式、bind表达式、其他函数对象,以及指向成员函数的指针和指向成员对象的指针。存储的可调用对象被称为的目标。如果不包含目标,则被称为空的。与不同,调用空的会导致未定义行为。// 主模板未定义 // template< class... > // class move_only_function;
2025-04-28 00:00:00
920
原创 软考:软件设计师考试数据结构知识点详解
数据结构是计算机中存储、组织数据的方式,它能够使数据组织得更加有结构,以便可以更高效地存取和修改数据。数据结构包括数据元素之间的关系和数据元素的存储方式。定义:数组是由具有相同类型的若干元素组成的有序集合。特点随机访问:可以通过索引快速访问任意元素。固定大小:数组的大小在创建时确定,之后不能改变。内存连续:数组元素在内存中是连续存放的。定义:链表是由一系列节点组成的有序集合,每个节点包含数据域和指针域。特点动态大小:链表的大小可以根据需要动态变化。
2025-04-28 00:00:00
2513
1
原创 软考:逻辑运算、算术运算、离散数学(命题逻辑、图论、概率统计)学习指南
软件设计师考试是全国计算机技术与软件专业技术资格(水平)考试(简称“软考”)中的重要科目之一。该考试旨在评估考生在软件开发、设计、分析及相关领域的专业技能和知识水平。通过软件设计师考试的人员,通常具备扎实的计算机基础知识、较强的逻辑思维能力以及系统分析与设计能力,能够胜任软件开发、软件测试、系统设计等相关工作。软件设计师考试内容涵盖了多个重要领域,其中逻辑运算、算术运算和离散数学是基础且核心的部分。这些内容不仅为软件开发提供了必要的数学工具和思维方式,还在算法设计、数据结构、系统分析等方面发挥着关键作用。
2025-04-27 02:00:00
910
2
原创 C++23 std::expected:一种新的词汇表类型,用于返回函数的结果
主模板:在其自身的存储空间内包含期望值或非期望值,该存储空间嵌套在expected对象内。void部分特化:表示期望的void值或包含非期望值。如果它包含非期望值,则它嵌套在expected对象内。C++23引入的为函数返回结果的处理提供了一种更加优雅、类型安全的解决方案。它解决了传统错误处理方法的一些痛点,如类型安全问题、代码可读性问题和性能开销问题等。通过使用,开发者可以编写出更加健壮、可维护的代码。在实际开发中,建议开发者积极采用。
2025-04-27 01:15:00
1476
原创 C++23中if consteval / if not consteval (P1938R3) 详解
是C++23引入的编译时条件构造,它允许开发者编写仅在常量求值上下文中执行的代码。而则是其否定形式,用于编写在非常量求值上下文中执行的代码。C++23中引入的和语法,为开发者提供了一种更直接、更安全的方式来区分编译时和运行时行为。它可以提高代码的可读性、可维护性、性能和安全性,适用于编译时反射、数学计算、模板元编程、类型安全操作等多种场景。在实际开发中,建议结合最新编译器(如GCC 13+、Clang 16+或MSVC 2022)体验这些特性。
2025-04-26 00:00:00
1184
1
blazor练手:借助GPT API KEY实现AI聊天
2024-12-20
一键配置.NET 8 SDK、VS Code 和 C# 配置环境
2024-12-20
python俄罗斯方块游戏
2024-12-19
python贪吃蛇小游戏
2024-12-19
实用PDF转PPT工具
2024-12-18
使用markdown写公众号的神器,写完还支持一键美化,一键复制到公众号、CSDN等平台
2024-11-13
图床软件使用教程,可以搭配gitee创建自己的图床仓库
2024-11-13
护眼bao/程序员必备/大神开发软件/win10系统使用
2020-07-28
计算机学科学习指导.zip
2020-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人