将添加的列初始化为可调整大小的2D矢量

时间:2018-01-13 18:20:16

标签: c++ vector initialization

我想增加2D矢量的列数。这是我的示例代码:

#include <vector>
using namespace std;
int main ()
{
    vector < vector <double> > U (5, vector <double> (1, 0));
    for (int ii = 0; ii < 5; ii++)
    {
        U [ii] [0] = ii + 1;
    }
    U . resize (5, vector <double> (2));
    return 0;
}

这会向矢量U添加一个未初始化的列,但我需要将新列初始化为零。我怎么能这样做?

(我使用Dev-C ++ 5.6.3)

1 个答案:

答案 0 :(得分:1)

您需要先调整任何现有行的大小,然后更改列数:

for(vector<double> & v : m)
  v.resize(v.cend(), <new column count>-<old column count>, 0);

之后添加任何新行:

m.insert(m.cend(), <new row count>-<old row count>, vector<double>(<new column count>, 0));