C++11 共 12 篇文章

C++ std::unique_ptr.release与reset的资源管理区别
2026-05-12 09:11:04
C++ std::uniqueptr.release与reset的资源管理区别 在C++中,std::uniqueptr 是管理独占资源的利器。它通过 RAII(Resource Acquisition Is Initialization)机制,确保资源在作用域结束时自动释放,避免了手动 delet
C++ 智能指针 资源管理
46 0
C++ std::array和C数组的区别:为什么推荐用std::array
2026-05-10 01:26:49
C++ std::array和C数组的区别:为什么推荐用std::array C 数组是 C 和 C++ 中的基础数据结构,但 C++ 标准库提供了 std::array,一个更现代、更安全的替代品。本文将对比两者,并解释为什么在 C++ 中优先选择 std::array。 什么是 C 数组? C
C++ std::array C数组
49 0
C++ std::shared_ptr的aliasing constructor使用场景
2026-05-09 16:26:27
C++ std::sharedptr的aliasing constructor使用场景 std::sharedptr 的 aliasing constructor 是一个强大但常被忽视的特性。它允许你创建一个 sharedptr,该指针管理一个对象,但其生命周期不由该对象本身决定,而是由另一个已有的
C++ 智能指针 别名构造函数
31 0
C++移动构造函数什么时候会被调用
2026-04-29 18:14:05
C++移动构造函数什么时候会被调用 移动构造函数是 C++11 引入的重要特性,主要用于提升性能,避免不必要的深拷贝。当对象持有堆内存、文件句柄等资源时,使用移动构造函数可以直接“窃取”临时对象的资源,而非复制一份。 以下通过具体代码实例和场景分析,详细说明移动构造函数的触发时机。 1. 准备测试类
C++ 移动构造函数 C++11
39 0
C++右值引用与std::move到底做了什么
2026-04-28 02:21:53
C++右值引用与std::move到底做了什么 C++ 11 引入的右值引用与 std::move 常常让人困惑。很多代码中到处充斥着 std::move,但性能提升却不明显,甚至有时还会导致程序崩溃。这通常是因为没有理解其背后的机制:移动语义的本质是“资源的窃取”,而不是“数据的复制”。 1. 理
C++ C++11 右值引用
63 0
C++ std::move_iterator与std::make_move_iterator的用法
2026-04-27 08:23:09
C++ std::moveiterator与std::makemoveiterator的用法 在 C++ 开发中,处理大量数据或包含动态资源的对象(如 std::string、std::vector)时,深拷贝往往会带来巨大的性能开销。为了避免不必要的拷贝,C++11 引入了“移动语义”。通常我们使
C++ 移动语义 迭代器
40 0
C++ lambda 表达式:匿名函数的使用场景
2026-04-19 07:23:49
C++ lambda 表达式:匿名函数的使用场景 C++ lambda 表达式(匿名函数)是 C++11 引入的一个强大特性,它允许你在需要函数的地方直接定义函数,而无需单独命名。这种写法不仅让代码更加紧凑,还能显著提高代码的可读性和维护性。以下指南将详细拆解 lambda 表达式的语法结构,并通过
C++ Lambda表达式 匿名函数
75 0
C++ 多线程:std::thread 与互斥锁
2026-04-07 02:47:14
C++ 多线程:std::thread 与互斥锁 阶段一:编译环境配置与核心对象声明 1. 确认编译器支持 C++11 或更高标准。打开终端并运行 g++ version。若版本号低于 4.8.1,安装 GCC 9.0 及以上版本或升级 MSVC/Clang,旧版工具链无法识别现代线程语法。 2.
C++多线程 互斥锁 线程同步
74 0
C++ 移动语义:std::move() 与右值引用
2026-04-05 20:33:38
C++ 移动语义:std::move 与右值引用 在 C++11 之前,对象的拷贝是唯一的选择。无论对象有多大,拷贝时都会完整复制内部数据,这在大对象或高性能场景下会造成严重的性能开销。C++11 引入的移动语义彻底改变了这一局面——它允许"偷走"源对象的资源,而不是盲目复制。本指南将深入解析移动语
C++移动语义 右值引用 std::move
71 0
C++ 移动语义:右值引用与 std::move
2026-04-04 20:04:49
C++ 移动语义:右值引用与 std::move C++11 引入的移动语义是现代 C++ 中最重要的特性之一。它解决了长期困扰 C++ 程序员的一个问题:对象拷贝带来的性能开销。通过移动语义,编译器能够识别并消除这些不必要的拷贝操作,让程序运行得更快、更高效。 理解移动语义的关键在于掌握两个核心概
C++移动语义 右值引用 std::move
88 0
C++ 标准库:不同标准版本的兼容性
2026-04-03 10:21:14
C++ 标准库:不同标准版本的兼容性 C++ 语言自诞生以来经历了多次标准化更新,每次新标准(如 C++11、C++14、C++17、C++20 等)都引入了新特性、改进或废弃旧功能。这些变化直接影响标准库的行为和接口。如果你在多个项目中使用不同编译器或需支持旧系统,理解各标准版本间的兼容性至关重要
C++标准库 版本兼容性 C++11
76 0
C++右值引用与移动语义优化内存拷贝详解
2026-04-02 02:25:25
C++右值引用与移动语义优化内存拷贝详解 C++11 引入的右值引用和移动语义,解决了传统拷贝操作中不必要的内存分配与数据复制问题。当你频繁创建临时对象或转移大型资源(如动态数组、文件句柄)时,这套机制能显著提升程序性能。 理解左值与右值的本质区别 区分一个表达式是左值还是右值,关键看它是否拥有“身
C++11 右值引用 移动语义
82 0