【问题标题】:Vector Element Size向量元素大小
【发布时间】:2020-04-01 14:11:46
【问题描述】:

对于下面的代码,vv[1].size() 将返回 4 的输出。我想知道这个数字是从哪里来的。

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    vector<vector<int>> vv;
    vector<int> v1(3,5);
    vector<int> v2(4,7);
    vv.push_back(v1);
    vv.push_back(v2);
    cout << vv.size() << endl << vv[1].size() << endl;
}

【问题讨论】:

标签: c++ vector int size


【解决方案1】:

这是因为 vector&lt;int&gt; v2(4,7); 创建了一个大小为 4 的向量,其值都是 7。您很可能打算编写 vector&lt;int&gt; v2 {4,7}; 来创建一个包含 4 和 7 两个元素的向量。

【讨论】:

  • here你可以找到std::vector的构造函数的完整列表
  • 代码实际上是一个练习题,我应该在其中编写输出。我想我很难掌握 vector&lt;vector&lt;int&gt;&gt; vv 。为什么是 vv[1] v2?
  • 啊,我明白了,那是因为 vv 是向量的向量。 “push_back”将您创建的向量添加到向量的向量中。在程序结束时,vv 将如下所示:[[5, 5, 5],[7,7,7,7]]。 [5,5,5] 是第一个创建为 v1 的向量,[7,7,7,7] 是第二个创建为 v2 的向量。
  • 元素的大小和数量不同。即使向量中没有有效元素,您也可以为向量预分配内存并显示相当长的大小。当您超过预分配量时,它通常会以 2 的幂次方递增,除非您更改数据结构的重新调整大小粒度
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多