在元组c++的向量中修改元组

Modifying a tuple in a vector of tuples c++

本文关键字:元组 修改 向量 c++      更新时间:2023-10-16

我有一个元组向量vector<tuple<int,int>> vector;,我想修改它包含的一个元组。

for (std::tuple<int, int> tup : std::vector)
{
    if (get<0>(tup) == k)
    {
        /* change get<1>(tup) to a new value
         * and have that change shown in the vector
         */
    }
}

我不确定如何更改元组的值,并将更改反映在向量中。我试过使用

get<1>(tup) = v;

但这不会改变向量中元组的值。我该怎么做?谢谢

通过引用捕获tuple

for (tuple<int, int> &tup : vector){
//                   ^here
    if (get<0>(tup) == k){
        get<1>(tup) = v;
    }
}

您只需要在for循环中使用引用而不是值:

for (tuple<int, int>& tup : vector){