“ vector <int> v []”和“ vector <vector <int >> v”之间有什么区别?

时间:2019-11-24 11:38:40

标签: c++ vector

我不知道vector<int> v[]vector<vector<int>> v之间的区别

vector<int>v[] = {{ 0, 1 }, { 2, 3 }};

v[0][0] = 4;
v[0][1] = 2;
v[0].push_back(4);

for (int i = 0; i < v[0].size(); i++)
    cout << v[0][i] << endl;

cout << v[1][0] << endl;

输出:4 2 4 2

vector<vector<int>> v = { {0, 1}, {2, 3} };

v[0][0] = 4;
v[0][1] = 2;
v[0].push_back(4);

for (int i = 0; i < v[0].size(); i++)
    cout << v[0][i] << endl;

cout << v[1][0] << endl;
return 0;

输出:4 2 4 2

内存或创建过程是否有所不同?

1 个答案:

答案 0 :(得分:6)

vector<int>v[] = {{ 0, 1 }, { 2, 3 }};

这是向量数组。


vector<vector<int>> v = { {0, 1}, {2, 3} };

这是向量的向量。


  

内存或创建过程是否有所不同?

所以,当然,在内存和创建方面都有差异。

  • 前者是固定的2D向量数组。尽管第二维(矢量)可以增长或缩小,但第一维却不能。它类似于[2 x Y]矩阵。

  • 后者是向量的向量。因此,第一维和第二维均可更改。因此它可以类似于[X x Y]矩阵,其中X和Y都可以在运行时更改。