C++11 是 C++ 语言的一个重要的版本,引入了许多新的特性和改进。以下是一些 C++11 的关键特性:
自动类型推导:使用
auto
关键字来自动推导变量的类型。auto x = 10; // x 的类型被推导为 int
智能指针:使用
std::unique_ptr
、std::shared_ptr
和std::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