C++11 新特性(c++11新特性 pdf)

C++11 新特性(c++11新特性 pdf)

编码文章call10242025-07-15 21:15:144A+A-

一、核心语言革新

  1. 移动语义与右值引用
    通过&&标识临时对象(右值),实现资源转移而非复制。例如移动构造函数将原对象资源指针转移后置空,避免深拷贝,极大优化容器操作性能。12
  2. 类型推导auto:自动推导变量类型(如迭代器for(auto it = vec.begin(); ...))34decltype:获取表达式类型,增强泛型编程灵活性35
  3. 智能指针
    unique_ptr(独占所有权)、shared_ptr(引用计数)等替代裸指针,自动管理内存生命周期,减少泄漏风险。58

二、语法与结构优化

  1. Lambda表达式
    匿名函数简化就地回调逻辑,例如:

std::sort(vec.begin(), vec.end(), [](int a, int b){ return a > b; });

  1. 范围for循环
    简化容器遍历:for(auto& elem : container) {...}
  2. 强类型枚举(enum class)
    避免命名冲突,支持作用域限定:myEnum::Value
  3. 统一初始化
    使用{}统一初始化各类对象(如结构体、容器):

std::vector<int> v = {1, 2, 3};

struct S { int x; double y; } s{5, 3.14};


三、并发与库增强

  1. 多线程库
    原生支持std::thread、std::mutex等,实现跨平台并发,替代平台相关API。57
  2. 线程池优化
    通过任务队列与工作线程模型提升并发效率(参考线程池实现示例)13
  3. 委托构造与继承构造
    简化构造函数重载,复用初始化逻辑。69

四、其他关键特性

特性

作用

示例

nullptr

替代NULL,明确空指针类型

int* p = nullptr;

constexpr

编译时计算常量表达式

constexpr int sqr(int x){return x*x;}

变长模板

支持任意数量模板参数

用于元组(std::tuple)实现

静态断言

编译期检查条件

static_assert(sizeof(int)==4);

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4