小编use*_*447的帖子

坚持迭代器的迭代器实现

我必须实现一个自制的Trie,我被困在Iterator部分.我似乎无法弄清楚trie的增量方法.

我希望有人能帮助我解决问题.

这是Iterator的代码:

template <typename T> class Trie<T>::IteratorPrefixe{
friend class Trie<T>;
public:
    IteratorPrefixe() : tree(NULL), currentNode(NULL), currentKey("") {};
    pair<string, T*> operator*() {return make_pair(currentKey, currentNode -> element);} ;
    IteratorPrefixe operator++()throw(runtime_error);
    void operator=(IteratorPrefixe iter) {tree = iter.tree; currentNode = iter.currentNode; currentKey = iter.currentKey;};
    bool operator==(IteratorPrefixe iter) {return tree == iter.tree && currentNode == iter.currentNode;};
    bool operator!=(IteratorPrefixe iter) {return tree != iter.tree || currentNode != iter.currentNode;};
private:
    Trie<T> * tree;
    Trie<T> * currentNode;
    string currentKey;
};
Run Code Online (Sandbox Code Playgroud)

这是我的特里:

template <typename T> class Trie { …
Run Code Online (Sandbox Code Playgroud)

c++ iterator trie

10
推荐指数
1
解决办法
3687
查看次数

标签 统计

c++ ×1

iterator ×1

trie ×1