我上课
class node{
public:
char name[5];
int number
}
然后我将一些节点添加到名为node_list
的向量中
vector <node*> node_list;
我想搜索所有节点并在node_list
中获取数据,如何使用迭代器来实现呢?
我写了错误的代码,但我不知道该怎么做。 这是我的代码。
vector <node*>::iterator iter;
for (i = 5; i > 0; i-- ) {
for (iter = node_list.begin(); iter != node_list.end(); iter++) {
cout<<iter->number;
}
}
编译后,我使用Visual Studio来跟踪iter
,它是内存的地址,是否像指针一样?如果要在节点中获取number
或name[5]
,该怎么办?
答案 0 :(得分:1)
使用基于范围的for循环:
for (auto &x : node_list) {
cout << x->number;
}
或者:
for (auto iter = node_list.begin(); iter != node_list.end(); ++iter) {
cout << (*iter)->number;
}
注意:(*iter)
的键入类型为node*