我试图在C ++中创建一个返回2D矢量的函数。 该函数还有一个2D向量作为参数,其思路是使用该函数返回此2D向量的修改版本。
我不会把我的整个代码放在这里,因为完全没有问题,但总结一下这个函数看起来像这样:
using std::vector;
vector<vector<char> > function(vector<vector<char> > grid) {
int width = static_cast<int>(grid.front().size());
int height = static_cast<int>(grid.size());
for(int y=0; y < height; ++y)
{
for(int x=0; x < width; ++x)
{
grid[y][x]= 'H';
}
}
return grid;
}
然后我会在主要:
中进行vector<vector<char> > new_grid = function(grid);
但它并没有按照我使用它的方式工作,所以我有几个问题:
grid
的大小并返回更大的2D矢量吗?感谢您的帮助!
如果你愿意,我可以展示我的整个代码,但它很大,可能不太清楚。
答案 0 :(得分:0)
回答你的问题:
grid.resize(new_size)
的大小,现在网格中的所有向量的大小都为零,这样您就可以遍历网格并调整所有这些向量... .resize
这不会影响您的原始网格,因为您传递了它的副本而不是它的引用。< / LI>
如果您没有更改原始网格,最好通过const引用传递它,这样您就不会制作这么多副本。