数组的初始化
普通的数组可以使用大括号来初始化,且这个大括号是可以嵌套使用的:
int a[1][1][1] = { { {0} } };
C++ 11中,std::vector 也可以使用括号来初始化,
vector<vector
不支持 C++11 的环境中,可以使用如下的方法初始化一位数组(c++ - How to initialize an STL vector with hardcoded elements in the easiest way? - Stack Overflow):
static const int arr[] = {16,2,77,29};
vector
vector 在初始化时,还可以使用 reserve 和 resize 两个函数为 vector 预留空间,两者的区别可以参见 ping不見路: STL vector 效率小記。
字典的初始化
C++11 中可以直接使用大括号进行初始化:
1 | map<int,int> _map = { |
在不支持 C++11 的环境下,只能自己写一个函数来创建了:1
2
3
4
5
6
7
8
9
10
11
12#include <map>
using namespace std;
map<int,int> create_map()
{
map<int,int> m;
m[1] = 2;
m[3] = 4;
m[5] = 6;
return m;
}
map<int,int> m = create_map();
当字典的 value 是一个结构体时,可以直接使用 [] 对结构体中的一个变量进行赋值,达到生成一个结构体,并赋值的目的。
1 | #include <iostream> |