c++ - 修改元组 vector 中的元组 C++

标签 c++ c++11 vector tuples

我有一个元组 vector 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
         */
    }
}

我不确定如何更改元组的值并将更改反射(reflect)在 vector 中。我试过使用

get<1>(tup) = v;

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

最佳答案

通过引用捕获元组:

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

关于c++ - 修改元组 vector 中的元组 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28874317/

相关文章:

java - Vector 和 ArrayDeque 类

c++ - 通过 id 并返回名称在 vector 中搜索结构元素

c++ - unique_ptrs 和转换后的指针和一个 vector

c++ - 使用适当的 tm_mday 将两个 time_t 之间的差异转换为 tm

.net - .NET 会随时接管 C/C++ 吗?

c++ - 如何将带有自定义分配器的 std::vector 传递给需要带有 std::allocator 的函数?

c++11 - GCC、Clang 和 MSVC 中的可变参数模板-模板参数和 sizeof 差异 - 谁是对的?

c++ - C++ 中的组件/策略模式、设计和实现

c++ - 与成员函数异步

c++ - 初始化结构成员时可能出现 MSVC 2013 错误