现代 C++
文章平均质量分 67
各版本C++的特性学习记录
code .
Coding in HK
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
稳定排序和非稳定排序
换句话说,如果原始序列中有两个元素。之前,那么在排序后的序列中,在 C++ STL 中,是稳定排序的实现,而。原创 2025-07-29 16:47:39 · 490 阅读 · 0 评论 -
STL库里的排序函数
在 C++ 的 STL(标准模板库)中,排序操作主要通过 <algorithm>此外,还有针对特定场景的排序函数(如部分排序、堆排序等)。头文件中的函数实现,其中最常用的是 std::sort。根据需求选择合适的排序算法,可以显著提升程序效率!和 std::stable_sort。原创 2025-07-29 16:37:59 · 509 阅读 · 0 评论 -
std::string字符串类的功能函数
是 C++ 标准模板库(STL)中用于处理字符串的类,提供了丰富的成员函数和操作符来方便地操作字符串。通过灵活组合这些函数,可以高效地处理字符串操作需求。原创 2025-07-29 15:37:50 · 1143 阅读 · 0 评论 -
STL库简介
C++标准模板库(STL)提供了一套完整的通用编程组件,主要包括三大核心部分:容器、算法和迭代器。容器分为序列容器(vector/list等)、关联容器(map/set等)和无序容器(unordered_map等)。算法库包含100多种泛型算法,如排序、查找等操作。迭代器作为容器和算法间的桥梁,提供统一的访问接口。此外,STL还包含函数对象、智能指针、并发支持等现代C++特性。STL遵循泛型编程思想,强调效率优先和组件互操作性,是C++高效开发的重要基础,能满足90%以上的日常数据结构需求。原创 2025-07-29 15:09:00 · 953 阅读 · 0 评论 -
C++中右值引用使用场景
在 C++ 中,右值引用 (T&&) 主要用于实现和。原创 2025-07-29 12:32:44 · 339 阅读 · 0 评论 -
C++常用库
C++作为一种功能强大的编程语言,其强大的功能来源于其丰富的类库及库函数资源。原创 2024-11-18 11:01:14 · 837 阅读 · 0 评论 -
C++17中的并行STL算法
C++17引入了并行STL(Standard Template Library)算法,这允许你在多核处理器上并行执行常见的STL算法,从而提高性能。因此,在实际应用中,你可能需要进行性能测试来决定是否使用并行算法。要使用并行STL算法,你需要确保你的编译器和标准库支持C++17,并且通常需要使用特定的编译选项来启用C++17标准。注意,使用并行算法时,算法函数中的操作必须是无副作用的(即线程安全的),否则可能会导致未定义行为。使用并行STL算法非常简单,你只需要在调用算法时指定执行策略即可。原创 2024-11-15 10:11:05 · 528 阅读 · 0 评论 -
现代C++中的for循环
在现代C++(特别是C++11及以后的标准)中,for循环经历了一些显著的改变和增强,使得它更加灵活和强大。原创 2024-11-15 09:43:45 · 841 阅读 · 0 评论 -
C++ 20的条件判断语句的增强
C++20 引入了一些新的特性和改进,使得条件判断语句更加灵活和强大。原创 2024-11-15 09:33:33 · 612 阅读 · 0 评论 -
C++ 的协程
协程函数使用co_awaitco_yield(对于生成器)或co_return来控制其执行流程。下面是一个简单的例子,展示了如何使用co_await来挂起和恢复协程的执行。// 一个简单的awaitable对象,它会在一段时间后“完成”} // 协程需要挂起void await_suspend(std::coroutine_handle<>) const noexcept {} // 挂起时的操作(这里为空)原创 2024-11-13 12:07:47 · 776 阅读 · 0 评论 -
C++ 23的格式化输出
库的改进可能包括一些小的增强和额外的功能,但核心功能和使用方法与 C++20 是兼容的。要获得最新的信息和具体的改进内容,建议查阅最新的 C++ 标准文档或相关编译器的文档。在 C++23 中,它可能会变得更加标准或有所改进,但具体情况取决于标准的最终定义和编译器的实现。库本身的核心功能没有大的变化,但可能会有一些小的改进和额外的功能。然而,需要注意的是,具体的改进内容可能因编译器和标准库实现的不同而有所差异。库(也称为 C++20 的标准库格式化功能)的进一步支持和可能的增强。在 C++23 中,虽然。原创 2024-11-13 12:02:23 · 1303 阅读 · 0 评论 -
原子操作 std::atomic
是 C++11 引入的一个模板类,用于实现原子操作。原子操作是不可分割的操作,它们在多线程环境下可以安全地执行,而无需额外的同步机制(如互斥锁)。提供了对基本数据类型的原子操作支持,如整数、布尔值、指针等。以下是。原创 2024-11-11 12:10:00 · 776 阅读 · 0 评论 -
std::thread 多线程
C++11 标准库引入了多线程支持,使得 C++ 程序能够更高效地利用多核处理器。原创 2024-11-11 12:05:19 · 592 阅读 · 0 评论 -
多线程同步原语std::shared_timed_mutex 和 std::shared_lock
和是 C++11 标准库中提供的多线程同步原语,用于实现更灵活的读写锁机制。它们允许多个线程同时读取共享数据,但在写入时,只允许一个线程独占访问。是一个读写锁,它允许多个线程同时持有共享锁(用于读操作),但只允许一个线程持有独占锁(用于写操作)。当某个线程持有独占锁时,其他任何尝试获取共享锁或独占锁的线程都会被阻塞,直到独占锁被释放。truefalsetruefalselock()try_lock()truefalsetruefalseunlock()是一个锁管理类,专门用于管理或的共享锁。原创 2024-11-11 12:03:54 · 1089 阅读 · 0 评论 -
智能指针std::weak_ptr
是一个模板类,它用于观察一个由管理的对象,而不拥有该对象。这意味着不会增加被观察对象的引用计数,因此当所有实例都被销毁时,对象仍然会被正确释放,即使还有实例指向它。原创 2024-11-07 14:23:28 · 522 阅读 · 0 评论 -
智能指针std::shared_ptr
是一个模板类,用于管理动态分配的对象。它允许多个实例共享对同一个对象的所有权。当最后一个拥有该对象所有权的被销毁或重置时,它所管理的对象也会被自动删除。这种机制有助于避免内存泄漏和悬挂指针等问题。原创 2024-11-07 14:18:58 · 670 阅读 · 0 评论 -
智能指针 std::unique_ptr
是 C++11 引入的一种智能指针,它实现了独占所有权语义,即同一时间内只能有一个拥有某个对象。当被销毁时(例如,离开其作用域时),它所管理的对象也会被自动删除。这有助于防止内存泄漏和野指针问题。以下是。原创 2024-11-06 10:19:21 · 815 阅读 · 0 评论 -
C++中的Lambda表达式
Lambda 表达式是现代 C++(C++11 及以后版本)引入的一项功能,它允许你定义匿名函数对象。Lambda 表达式在编写简短的回调函数、算法操作以及需要传递函数对象的地方非常有用。原创 2024-11-06 10:08:17 · 593 阅读 · 0 评论 -
std::future怎么使用?
是 C++11 引入的一个类模板,用于表示一个异步操作的结果。它通常与std::async或线程池等一起使用,以便在不阻塞当前线程的情况下获取其他线程或异步任务的结果。以下是如何使用。原创 2024-11-05 10:37:49 · 662 阅读 · 0 评论 -
三路比较运算符<=>
这是默认的三路比较运算符声明,它会被编译器自动实现为基于成员的比较。如果你的类有成员变量,并且这些成员变量也支持三路比较运算符,那么编译器会自动为你的类生成这个运算符的实现。double b;if (a!} else {在这个例子中,MyClass的首先比较成员变量a,如果a不相等,则直接返回a与other.a的比较结果;如果a相等,则继续比较成员变量b。原创 2024-11-05 10:32:54 · 577 阅读 · 0 评论 -
noexcept 是什么?
noexcept是C++11引入的一个关键字,用于指定一个函数或函数模板在运行时是否不会抛出异常。当函数被标记为noexcept时,它向编译器和程序的其他部分承诺不会抛出任何类型的异常。这一特性有助于提高代码的安全性和性能,因为编译器可以根据这一信息进行优化,避免生成处理异常的额外代码。原创 2024-11-05 10:29:53 · 744 阅读 · 0 评论 -
C++各个版本的主要特性
C++是一种高级编程语言,以其强大的功能、灵活性和高效性而闻名。随着C++标准的不断更新,C++语言持续发展,各个版本引入了不同的主要特性,以适应现代软件开发的需求。原创 2024-11-05 10:25:49 · 815 阅读 · 0 评论
分享