我正试图学习C++作为一种兴趣,我遇到了一个问题,试图纳入一个向量容器。
我试图将一个向量迭代器合并到我的类中,但是在这行std::cout << nodeIterator->data;
上出现了一个编译错误,我的代码片段如下。
我得到的错误:
错误:请求成员'data' in '* nodeIterator. __gnu_cxx::__normal_iterator::operator-> [with _Iterator = const FibTree::Node**,_Container = std::vector >](',它是非类类型'const FibTree::Node*'
class Node {
public:
int data;
Node const* left;
Node const* right;
Node const* parent;
int n;
int level;
int index;
Node (void);
};
// Get root method
Node const* getRoot(void) {
return this->root;
}
void start(Node const* root) {
std::vector<Node const*> setsList;
std::cout << root->data;
writeSets(setsList, root);
}
writeSets(std::vector<Node const*> &setsList, Node const* cur) {
std::vector<Node const*>::iterator nodeIterator;
// Displays all preceding left values
for (nodeIterator = setsList.begin();nodeIterator != setsList.end(); nodeIterator++)
{
std::cout << nodeIterator->data; //*** Get Compile error this line ***
}
std::cout << cur->left->data;
std::cout << cur->right->data;
setsList.push_back(cur->left);
writeSets(setsList,cur->right);
setsList.pop_back();
}
谁能给予点建议?
1条答案
按热度按时间kg7wmglp1#
这就是罪魁祸首:
字符串
所以当你写
nodeIterator->data
时,你是在从一个没有这样成员的const FibTree::Node**
请求data
,因此出现错误。你需要型
edit除此之外,您的代码无法编译:
writeSets
没有返回类型,getRoot
试图访问this
,这在非成员函数中无法完成,并且start
在writeSets
之前声明。