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

Use iterator in class std::vector

本文关键字:迭代器 vector std 在类      更新时间:2023-10-16

我有一个类

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],我该怎么办?

使用基于范围的 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*