簡體   English   中英

如何修改向量向量的元素(使用自動迭代器)?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM