【问题标题】:Resizing 2D vector in C++ and fill with 0在 C++ 中调整 2D 向量的大小并用 0 填充
【发布时间】:2016-12-04 06:36:26
【问题描述】:

我有整数 n 和 m 以及两个向量:

vector< vector<int> > inputGrid;
vector< vector<int> > outputGrid;

如何将 2D 向量的大小调整为 (n, m) 并将 0 放在适当的位置?

谢谢

【问题讨论】:

  • 如果您事先知道(n, m),您可以将向量构造成所需的大小。例如。对于 inputGrid:vector&lt; vector&lt;int&gt; &gt; inputGrid(n, vector&lt;int&gt;(m,0));
  • 您确定要将网格驻留在“锯齿状”内存中吗? (每个子向量指向不同的缓冲区)。
  • m 和 n 在一个循环中,所以我事先并不知道它们。那里的答案有效,除了使用二维数组之外还有其他方法吗?我不太确定您所说的锯齿状内存/缓冲区是什么意思

标签: c++ multidimensional-array vector


【解决方案1】:

其中 n 是列,m 是行。

inputGrid.resize(n, std::vector<int>(m, 0));
outputGrid.resize(n, std::vector<int>(m, 0));

看看here,还有更多关于二维向量的信息和resize

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    相关资源
    最近更新 更多