gpt4 book ai didi

c++ - 遍历子 vector

转载 作者:行者123 更新时间:2023-11-28 02:21:31 24 4
gpt4 key购买 nike

我正在尝试遍历 vector 邻居的 vector 并简单地显示其内容。

背景:图论。neighbors[i] 是一个包含顶点 i 的所有相邻顶点的 vector 。对于这个例子,图是 5 个顶点相互连接的完整图 $K_5$。

问题:我需要一个迭代器来遍历子 vector ,因为我(不应该)知道它们的长度,但我得到了错误的答案。

我的尝试

for(int i = 0; i < num_vertices_h; ++i) {
for(vector<int>::iterator it = neighbors[i].begin(); it != neighbors[i].end(); ++it) {
cout << neighbors[i][*it] << " ";
}
cout << endl;
}

(错误的)输出

2 3 4 -1454373456
0 3 4 -1454373584
0 1 4 0
0 1 2 -1454373744
0 1 2 3

如果我只是作弊,利用我知道每个子 vector 有 4 个条目的事实,我可以避免迭代器:

作弊解决方案

for(int i = 0; i < num_vertices_h; ++i) {
for(int j = 0; j < num_vertices_h -1; ++j) {
cout << neighbors[i][j] << " ";
}
cout << endl;
}

正确输出

1 2 3 4 
0 2 3 4
0 1 3 4
0 1 2 4
0 1 2 3

最佳答案

如果neighbors[i]是 vector 本身,在您的第一次循环尝试中,*it它实际上是 vector 元素,所以你可以 cout << *it你会得到正确的结果。

关于c++ - 遍历子 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32295401/

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