C++11 引入了许多新的特性和改进,使得编程语言更加现代化和强大。以下是一些主要的 C++11 特性:

1. 自动类型推导 (Auto)

使用 auto 关键字可以自动推导变量的类型,这可以简化代码并提高可读性。

auto x = 10; // x 的类型被推导为 int

2. 列表初始化

在 C++11 中,可以使用花括号 {} 来初始化容器,如 std::vector

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

3. Lambda 表达式

Lambda 表达式允许你定义匿名函数,这在处理回调函数和事件处理器时非常有用。

std::for_each(v.begin(), v.end(), [](int i) { std::cout << i << std::endl; });

4. 智能指针

智能指针如 std::unique_ptrstd::shared_ptrstd::weak_ptr 可以自动管理动态分配的内存,避免内存泄漏。

std::unique_ptr<int> p(new int(10));

5. 模板别名

模板别名允许你为模板参数提供一个简短的名称。

template<typename T>
using MyType = std::vector<T>;

MyType<int> v; // 等同于 std::vector<int> v;

6. 右值引用

右值引用允许你创建对右值(临时对象)的引用,这可以用于移动语义,提高性能。

int a = 10;
int b = 20;
std::swap(a, b); // 使用右值引用优化 swap 操作

更多关于 C++11 的内容,请参考本站 C++11 教程

C++11 Logo