遍历子向量
Iterating through sub-vectors
我正在尝试迭代向量邻居的向量,并简单地显示其内容。
上下文:图论。neighbors[i]是一个包含顶点i的所有相邻顶点的向量。对于本例,图是5个彼此相连的顶点的完全图$K_5$。
问题:我需要一个迭代器来遍历子向量,因为我(不应该)知道它们的长度,但是我得到了错误的答案。
<<p> 我尝试/strong>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
如果我只是作弊,使用我知道每个子向量有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]
本身是一个向量,在你的第一次循环尝试中,*it
实际上是向量元素,所以你可以只使用cout << *it
,你会得到正确的结果。
相关文章:
- 在遍历处理程序的向量时注册和注销处理程序
- 遍历unordered_map向量
- 如何正确地推回然后遍历堆中对象的向量?
- 将树节点添加到向量向量中的 n 元树遍历的平均和最坏情况时间复杂度是多少?
- 为什么即使使用 for 循环遍历我的向量,它也没有输出到控制台?(C++)
- 执行错误访问 遍历向量
- 尝试重载输出运算符时,我无法遍历对象向量
- 遍历向量与数组哪个更快?
- 遍历对象向量,并找到与从文本文件中提取的对象匹配的变量
- 遍历包含 c++ 中指针的向量
- 如何遍历地图向量
- 遍历抽象类的向量
- 使用迭代器遍历向量并修改内容
- 遍历向量<向量<对<int, int> > >
- 如何遍历特定字符串的向量
- 循环遍历向量<string>并保持每个元素"count"时出现问题
- 如何使用 c++11 语法创建 for 循环以遍历向量
- 使用 auto 遍历指针的常量向量
- 在C 中的字符串向量的字符串元素中循环遍历所有字符
- 使用另一个向量遍历向量的特定元素