一、vector<int> v
表示声明一个容器v,并且不给他预定存储空间。
运行:
vector<int> v;
cout << v.size();
输出为:
0
二、vector<int> v(n)
表示声明一个容器v,并给他预定存储空间。每一个单元初始化为0,因此,vector<int> v(n)
也等同于vector<int> v(n, 0)
。当然,如果想要初始化为其他值,也可以改为vector<int> v(n, val)
运行:
vector<int> v(5);
cout << v.size() << endl;
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
vector<int> w(5, -1);
for (int i = 0; i < w.size(); i++) {
cout << w[i] << " ";
}
输出为:
5
0 0 0 0 0
-1 -1 -1 -1 -1
三、vector<int> v[n]
可以理解为定义了一个长度为n的数组,数组的每个元素都是一个vector类型的变量。这个v[n]
可以理解为一维长度是n,二维长度可变的矩阵。
运行:
vector<int> v[5];
v[0].push_back(-1);
cout << v[0].size() << " " << v[4].size() << endl;
cout << v[0][0];
输出为:
1 0
-1
如果想要定义一个两个维度都可变的矩阵,应该使用:vector<vector<int> > v
两个箭头(>>)要分开写(> >), 避免和移位运算符混淆。
参考并感谢:
https://blog.csdn.net/JCjunior/article/details/108438259
https://blog.csdn.net/OrdinaryMatthew/article/details/115084924