vector initialization
1, 5, 6比较常用; 每个容器类型都定义了一个默认构造函数,创建一个指定类型的空容器,且可以接受指定容器的大小和元素初始值的参数。
vector<int> path;
默认初始化,vector
为空--size
返回0
,表明容器中尚未有元素;capacity
返回0
,意味着尚未分配储存空间。适用于元素个数未知,需要在程序运行中动态添加的情况。vector<int> path2(path1);
path2
初始化为path1
的拷贝,path1
和path2
的类型必须相同。vector<int> path1 = {1,2,3.0,4};
初始化为列表中元素的拷贝。适用于元素数量和值预先可知的情况。vector<int> path2(path1.begin()+1, path1.end()-1);
初始化为两个迭代器指定范围内的元素的拷贝,这里path2 = {2,3};
适用于获取一个序列的子序列。vector<int> path(7);
默认初始化,path
中将包含7
个元素,每个元素进行省缺的值初始化,对于int
,也就是被赋值为0
,因此path
中被初始化为包含7
个0
。适用于运行初期元素大致数量可知,而元素的值需要动态获取时。vector<int> path(7,3);
指定初始化,path
被初始化为包含7
个值为3
的int
。
example
vector<vector<string>> res;
vector<string> path(n, string(n,'.')); // initialization
vector<int> row(n, 0);
vector<bool> col(n, true); // meet condition
vector<bool> diag(n, true);
vector<bool> anti_diag(n, true);
好棒的