C++传递向量<向量 >用于修改
假设我有一个
vector<vector<foobar> > vector2D(3);
for(int i=0;i<3;i++)
vector2D[i].resize(3);
So,一个 3x3 向量,总共包含 9 个 foobar 类型的元素。
我知道想要将“vector2D”传递给函数来修改“vector2D”中的某些值。 例如,如果 foobar 包含
struct foobar{
int *someArray;
bool someBool;
}
我想将“vector2D”传递给一个修改 vector2D 的函数,如下所示:
vector2D[0][0].someArray = new int[100];
vector2D[0][0].someArray[49] = 1;
该函数不应返回任何内容(通过引用调用)。
这可能吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,这是可能的。您只需将其作为非常量引用传递即可。类似的:
进一步注意:如果您在向量中使用它,您可能应该为您的 foobar 结构实现复制构造函数。
Yes, it's possible. You just need to pass it in as a non-const reference. Something like:
One further note: you probably should implement the copy constructor for your
foobar
struct if you're using it within a vector.当然,只需通过引用传递你的 vector2D:
并将其调用为:
Sure, just pass your vector2D by reference:
and call it as: