gpt4 book ai didi

c++ - 访问元组 vector 中的元素 C++

转载 作者:行者123 更新时间:2023-12-05 08:24:53 29 4
gpt4 key购买 nike

我有以下代码主体。

#include <iostream>
#include <vector>
#include <tuple>
int main() {
std::vector<std::tuple<int, int>> edges(4,{1,2});

for (auto i = std::begin (edges); i != std::end (edges); ++i) {
std::cout << std::get<0>(i) << " "<< std::get<1>(i)<< " ";
}
}

在我看来,这是有道理的,我有一个正在初始化的元组 vector 。然后我遍历 vector ,分别打印元组的两个元素。

但是代码doesn't work归来

8:26: error: no matching function for call to 'get'
std::cout << std::get<0>(i) << " "<< std::get<1>(i)<< " ";
^~~~~~~~~~~

谁能解释一下为什么?

最佳答案

我会更改为基于范围的 for 循环

for (auto const& edge : edges) {
std::cout << std::get<0>(edge) << " "<< std::get<1>(edge)<< " ";
}

否则要访问每个边,您需要使用 * 取消引用您的迭代器以获取实际的元组本身

for (auto iter = std::begin(edges); iter != std::end(edges); ++iter) {
std::cout << std::get<0>(*iter) << " "<< std::get<1>(*iter)<< " ";
}

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

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com