在类std :: vector中使用迭代器

时间:2019-01-14 03:48:12

标签: c++ class iterator stdvector

我上课

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,它是内存的地址,是否像指针一样?如果要在节点中获取numbername[5],该怎么办?

1 个答案:

答案 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*