[英]C++ Vector datatype compiler error issue with a member of my defined Class
我正在尝试学习C ++,这是我的兴趣所在,但我遇到了一个试图合并Vector容器的问题。
谁能帮助我,我正在尝试将矢量迭代器合并到我的Class中,但是在此行std::cout << nodeIterator->data;
上出现编译错误 ,下面是我的代码段。
我得到的错误:
错误:在'* nodeIterator中请求成员'data'。 __gnu_cxx :: __ normal_iterator :: operator-> [带有_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();
}
有人可以给我提些建议吗?
非常感谢
这是罪魁祸首:
Iterator = const FibTree::Node**
因此,当您编写nodeIterator->data
您是从没有此类成员的const FibTree::Node**
请求data
,因此会出现错误。 你需要
(*nodeIterator)->data
编辑除此之外,如图所示的代码无法编译: writeSets
没有返回类型, getRoot
尝试访问this
类型, this
在非成员函数中无法完成,并且在writeSets
之前声明了start
。 请在下一次发布重现错误的确切代码: https : //stackoverflow.com/help/mcve
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.