C++11 是 C++ 语言的一个重要的版本,引入了许多新的特性和改进。以下是一些 C++11 的关键特性:

  • 自动类型推导:使用 auto 关键字来自动推导变量的类型。

    auto x = 10; // x 的类型被推导为 int
    
  • 智能指针:使用 std::unique_ptrstd::shared_ptrstd::weak_ptr 来管理动态分配的内存。

    std::unique_ptr<int> p(new int(10));
    
  • Lambda 表达式:提供了一种更简洁的方式来定义匿名函数。

    auto lambda = []() { std::cout << "Hello, World!" << std::endl; };
    lambda();
    
  • 范围 for 循环:简化了迭代容器元素的过程。

    for (auto &i : myVector) {
        std::cout << i << std::endl;
    }
    
  • 初始化列表:提供了更简洁的方式来初始化变量和对象。

    std::vector<int> v = {1, 2, 3, 4, 5};
    
  • 线程支持:引入了 <thread><mutex> 库,支持多线程编程。

    std::thread t([]() { std::cout << "Hello from thread!" << std::endl; });
    t.join();
    
  • 右值引用和移动语义:优化了资源管理,尤其是在处理临时对象时。

    std::vector<int> v(1000);
    std::vector<int> v2(std::move(v)); // v2 获得了 v 的资源,v 变为空
    
  • 变长模板参数:允许模板参数的数量是可变的。

    template<typename... Ts>
    void print(Ts... args) {
        (std::cout << args << " ", ...);
    }
    print(1, 2, 3, 4, 5); // 输出:1 2 3 4 5
    

更多关于 C++11 的信息,您可以访问本站的 C++11 深入学习

C++11 Logo