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_ptr
、std::shared_ptr
和 std::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