【问题标题】:How to create N quantity of vectors OR arrays in one single time?如何一次创建 N 个向量或数组?
【发布时间】:2016-04-07 00:42:51
【问题描述】:

我想知道你们中是否有人知道如何一次创建 n 个向量或数组?

假设我需要 100 个向量,或者 1000 个,手动完成会非常低效。

感谢您的帮助!

【问题讨论】:

  • 不清楚你的意思。 手动对您来说是什么样的?
  • 一种快速而肮脏的方法是制作一个向量数组。 std::array<std::vector<TYPE>, 1000> bunchOVectors;

标签: c++ arrays vector initialization


【解决方案1】:

回想一下std::vector<T> 是一个模板。您可以给它一个向量作为类型参数,并制作一个向量的向量:

std::vector<std::vector<int>> vectorOfEmptyVectors(1000);

现在您在一行上创建了 1000 个空向量。

但是请注意,在一行上执行此操作对效率没有任何帮助:在内部,需要创建 1000 个矢量对象。此外,如果你决定一个非空向量的向量,比如说

std::vector<std::vector<int>> vectorOfVectors(1000, std::vector<int>(300));

然后将创建 1000 个 300 元素的向量。

【讨论】:

  • 这是我一直在寻找的答案,如果我的问题之前不清楚,我很抱歉。我需要 X 个彼此独立的向量,换句话说,不在同一行。谢谢!
  • 我想知道,您将如何处理其中的每一个?假设我有这个代码:vector > vectorOfVectors(100, vector(10,rand()% 2));我尝试使用常规方法访问它,但它不起作用
  • @Side16 第二个参数不是为每个项目调用的 100 个项目的生成器函数,它是单个项目的构造函数,它被构造一次,然后被复制 100 次。如果您想用 100 个不同的向量初始化一个向量,请循环执行。
【解决方案2】:

您始终可以将这些向量封装在一个向量中。示例:创建 1000 个 int 向量,每个向量包含 100 个元素:

std::vector<std::vector<int>> vec_container(1000, std::vector<int>(100));

【讨论】:

    【解决方案3】:

    向量的向量?说

    std::vector<std:vector<double>> my_vec (1000, std::vector<double>());
    

    它创建一个包含 1000 个空 vectro&lt;double&gt; 向量的向量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多