1. 范围for循环:C++11引入了范围for循环(range-based for loops),它允许你使用一个迭代器遍历容器的元素,而不需要显式地声明变量来存储元素。这使得代码更加简洁和易于阅读。
2. 右值引用:C++11引入了右值引用(rvalue references),这是一种新的语法糖,允许你在表达式中使用右值引用作为函数参数或返回值。这可以简化某些类型的函数调用,并减少内存分配。
3. 异常处理:C++11引入了异常处理(exception handling)的新机制,包括try/catch块和throw语句。这些新特性使得错误处理更加灵活和强大。
4. 模板元编程:C++11引入了模板元编程(template metaprogramming),这是一种强大的工具,允许你编写通用的、可重用的代码,而无需为每种特定类型编写单独的代码。
5. 智能指针:C++11引入了智能指针(smart pointers),这是一种自动管理资源的方式,可以避免内存泄漏和其他问题。智能指针有三种类型:unique_ptr、shared_ptr和weak_ptr。
6. 并发支持:C++11引入了对多线程和并发的支持,包括线程库(thread library)、互斥锁(mutex)和条件变量(condition variable)。
7. 模块化:C++11引入了模块化(modularity)的概念,允许你将大型项目分解为多个模块,每个模块都有自己的命名空间。这有助于代码的和维护。
8. 文件流:C++11引入了文件流(file streams),包括ifstream、ofstream、fstream等类,用于读写文件。
9. 字符串字面量:C++11引入了字符串字面量(string literals),这是一种更简洁的字符串表示方式,可以直接在表达式中使用。
10. 模板特化:C++11引入了模板特化(template specialization),这是一种强大的工具,允许你在编译时选择特定的模板实现。
这些新特性使得C++11成为一门更加强大、灵活和高效的编程语言。如果你已经熟悉C++98/03,那么C++11中的许多新特性可能会让你感到有些陌生,但它们都是值得学习和掌握的。