[英]How can I modify elements of a vector of vectors (with auto iterator)?
我是 STL 的新手(我也不是专业的编码员),我在尝试使用自动迭代器修改 Matrix 的元素时遇到问题......我尝试了许多不同的方法(也参考为你可以看到)但我仍然无法掌握数据。 下面的代码是我正在尝试做的......
for (auto & e : D.getMat())
{
for (auto & i : e)
{
i = 3;
}
}
D 是我的 class “矩阵”的 object,getMat 是:
vector<vector<int>> getMat();
这就是它的作用:
vector<vector<int>> Matrix::getMat()
{
return _mat;
}
_mat 是私有的并声明为:
vector<vector<int>> _mat;
请原谅我的无知,但我正在这个世界上迈出第一步。
getMat()
按值返回,因此它返回数据成员_mat
的副本,对副本的任何修改都与原始_mat
。
将其更改为按引用返回。 例如
vector<vector<int>>& Matrix::getMat()
// ^
{
return _mat;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.