1. 初始化列表
C++98 允许用花括号 { } 对数组或结构体做统一初始化,例如:
struct Point{ int a; int b; };
int main(){
int arry[] = {1,2,3,4}; // 数组初始化
Point p = {1,2}; // 结构体初始化
return 0;
}
C++11 把这种写法扩展到了所有内置类型和自定义类型,甚至标准容器:
// 数组
int arry1[]{1,2,3,4,5};
// 内置类型
int x{9};
// 自定义类型
Point p{9,9};
// vector 容器
vector<int> vec = {1,2,3,4,5,6,7,8,9};
加不加等号 = 都可以。
2. std::initializer_list
std::initializer_list 是一个轻量级模板类,定义在 <initializer_list> 头文件中,让函数能接收花括号初始化列表。常见于 vector、list 等容器的构造:
std::initializer_list<T> init_list = { /* 元素 */ };


