【发布时间】:2015-01-10 06:55:43
【问题描述】:
我有一个 Tree 类,我正在尝试遍历它们的列表并打印该类的 data 成员,我在该类中有以下两种方法:
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 **
}
}
编译错误是:
: 错误: 在 '* it. 中请求成员 'data'。 __gnu_cxx::__normal_iterator<_iterator _container>::operator-> with _Iterator = const Tree::Node**, _Container = std::vector >',属于非类类型'const Tree::Node*'
Node 对象中的data 是Int 类型,不确定是否需要定义迭代器的预期数据类型以及向量包装的数据类型以克服此错误。
希望有人在这里提供帮助。
非常感谢。
【问题讨论】:
标签: c++ vector iterator std operator-precedence