C++ - 不编译对象向量的迭代器

C++ - iterator for a vector of objects not compiling

我有一个 class 树,我试图遍历它们的列表并打印 class 的 data 成员,我有以下两种方法class:

Node 定义 Tree:

class Node {
    public:
        int data;
        Node const* left;
        Node const* right;
};

writeSets 方法的片段:

void Tree::writeSets(std::vector<Node const*> &list, Node const* root) {
    if (root == NULL) {
        return;
    }

    // Displays all preceding left values
    for (std::vector<Node const*>::iterator it = list.begin(); it != list.end(); it++) {
        std::cout << *it->data;
        *** Getting compile error here **
    }
}

编译错误为:
: 错误:请求成员 'data' in '* it. __gnu_cxx::__normal_iterator<_Iterator, _Container>::operator-> with _Iterator = const Tree::Node**, _Container = std::vector >',非class类型'const Tree::Node*'

Node 对象中的

dataInt 类型,不确定我是否需要定义迭代器的预期数据类型以及向量包装的数据类型克服这个错误。

希望有人能提供帮助。

非常感谢。

你应该写 (*it)->data.

*it->data 等同于 *(it->data).