【问题标题】:Inizialize empty 2D vectors? [duplicate]初始化空的二维向量? [复制]
【发布时间】:2020-01-20 16:58:22
【问题描述】:

首先很抱歉,如果它是重复的,我还没有找到我需要的东西。

问题是如何用空值初始化二维向量。

为了我的目的,我写:

vector<vector<int>> Example={{},{},{}};

所以我可以写例如:

for(int i=0;i< Example.size();i++)
    Example[i].push_back(i);

现在我该怎么写这个东西:

vector<vector<int>> Example={{},{},{}}; 

以一种聪明(更正确)的方式?

【问题讨论】:

  • vector&lt;vector&lt;int&gt;&gt; Example(3);.
  • 要知道的是,向量总是只存储初始化的对象或值。要对此进行试验,请编写一个在其无参数(默认)构造函数中打印某些内容的类,然后创建此类的向量。如果你在那个向量上使用 resize(10),你会看到构造函数被调用了 10 次。如果您直接使用 10 个元素(如此处的答案建议)创建向量,则相同。整数的默认“构造函数”仅为 0。这是与原生数组的不同之处,它可以为您提供垃圾内存而不是默认初始化值。

标签: c++ vector initialization


【解决方案1】:

这是一个演示程序。

#include <iostream>
#include <vector>

int main() 
{
    std::vector<std::vector<int>> v( 3 );

    return 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 2018-06-26
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多