c++ - "vector<int> v[]"和 "vector<vector<int>> v"有什么区别

标签 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

内存或创建过程是否有差异?

最佳答案

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

这是一个 vector 数组。

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

这是 vector 的 vector 。

<小时/>

Is there a difference in memory or the creation process?

所以,当然,是的,内存和创造都存在差异。

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

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

关于c++ - "vector<int> v[]"和 "vector<vector<int>> v"有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59017235/

相关文章:

c++ - 在没有 std::function 的情况下将 lambdas/函数存储在 std::vector 中

c++ - std::vector::clear()-ing 二维 vector 线程的内部 vector 是否安全?

android - 如何在 Android 中将 <vector> 放入 <shape> 中?

c++ - 在 opengl 中绘制具有六个不同颜色面的立方体

c++ - 如何使用 cryptoapi 获取十六进制格式字符串的证书序列号?

c++ - 将二维数组传递给仅采用一维数组的函数 (C++)

c++ - 做个圈子把别人推开?

java - JNI 检测到应用程序错误 : use of deleted weak global reference

c++ - 是否可以根据来自另一个 vector 的信息从一个 vector 中删除某些元素?

c++ - 在 C++ 中使用指针 vector 时会泄漏内存吗?