繁体   English   中英

我定义的类的成员出现C ++ Vector数据类型编译器错误问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM