vector<vector<int>>vec1 和 vector<int>vec2[100] 有啥区别? [关闭]

Posted

技术标签:

【中文标题】vector<vector<int>>vec1 和 vector<int>vec2[100] 有啥区别? [关闭]【英文标题】:What is the difference between vector<vector<int>>vec1 and vector<int>vec2[100]? [closed]vector<vector<int>>vec1 和 vector<int>vec2[100] 有什么区别? [关闭] 【发布时间】:2020-07-23 09:46:45 【问题描述】:

C++ 中vector&lt;vector&lt;int&gt;&gt;vec1vector&lt;int&gt;vec2[100] 有什么区别?

请给我一个例子?

【问题讨论】:

您是否进行了研究以找出每一个的含义?然后比较解释的差异?如果是这样,你发现了什么,你对此有什么疑问?如果没有,为什么不呢? 您可以接受其中一个答案,它解决了您的问题。 【参考方案1】:
vector<vector<int>> vec1

向量整数的向量,其中both vec1 及其行(表示vector&lt;int&gt;)的大小可以根据元素数量的增加进行调整。

例如,你可以这样做

vec1.resize(2);     // you have now two rows or two `vector<int>` in it!
vec1[0].resize(3);  // resize or push back as many you want
vec1[1].resize(4);

现在您在vec1 中有以下内容


  0, 0, 0,    // vec1[0].
  0, 0, 0, 0, // vec1[1]

在哪里

vector<int> vec2[100]

整数向量数组,您可以在其中更改数组元素的大小(表示vec2[0], vec2[1],....) ,而不是数组(表示vec2)本身。数组的大小是固定的,100。

意味着,您有(固定大小的)100vector&lt;int&gt;。您可以调整它们的大小。

例如,当你这样做时

vec2[0].resize(3);
vec2[1].resize(4);

你会得到vec2


  0, 0, 0,    // vec2[0].
  0, 0, 0, 0, // vec2[1]
  , // vec2[3] with no elements in it!
  ....
  ....
   // vec2[99] with no elements in it!

【讨论】:

【参考方案2】:

vectorvec1 是Vector of Vectors,vectorvec2[100] 是Array of Vectors。

Difference Between C++ Vector and Array

Advantages of vector over array in C++

【讨论】:

以上是关于vector<vector<int>>vec1 和 vector<int>vec2[100] 有啥区别? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

力扣15. 三数之和

高精度算法

8.图的邻点不同颜色

强联通

C++中vector的例子

C++中vector 的实例