c++ 98 c++11
时间: 2025-02-01 09:14:19 浏览: 74
### C++98 和 C++11 标准特性对比
#### 自动类型推导
C++11 引入了 `auto` 关键字用于自动类型推导,简化了复杂类型的声明。这使得编写泛型代码更加方便。
```cpp
// C++98 需要显式指定类型
vector<int>::iterator it = myVector.begin();
// C++11 可以使用 auto
auto it = myVector.begin();
```
#### 初始化列表
C++11 改进了初始化方式,支持统一初始化语法 `{}`,可以更安全地初始化对象并减少歧义[^1]。
```cpp
// C++98 使用括号初始化
int array[] = {0, 1, 2};
// C++11 统一初始化
std::vector<int> vec{0, 1, 2};
```
#### 移动语义与右值引用
C++11 增加了移动语义的支持,通过引入右值引用来提高资源管理效率,减少了不必要的拷贝操作。
```cpp
class MyClass {
public:
// Move constructor
MyClass(MyClass&& other) noexcept;
// Move assignment operator
MyClass& operator=(MyClass&& other) noexcept;
};
```
#### Lambda 表达式
匿名函数即 lambda 函数允许就地定义小型内联函数,增强了表达能力。
```cpp
// 定义一个简单的lambda表达式
auto add = [](int a, int b) -> int { return a + b; };
```
#### 头文件和库增强
新版本增加了许多实用的标准库组件,比如正则表达式、线程库以及随机数生成器等[^3]。
阅读全文
相关推荐











