【问题标题】:Modifying a tuple in a vector of tuples c++修改元组向量中的元组c ++
【发布时间】:2015-05-06 14:43:45
【问题描述】:

我有一个元组向量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;

但这不会改变向量中元组的值。我怎样才能做到这一点?谢谢。

【问题讨论】:

    标签: c++ c++11 vector tuples


    【解决方案1】:

    通过引用捕获tuple

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

    【讨论】:

    • 谢谢,我完全忘记了!
    • 你也可以使用auto:for (auto&amp; tup : vector) {...}
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-03-04
      • 1970-01-01
      • 2018-01-17
      • 2022-01-14
      • 2020-07-04
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多