gpt4 book ai didi

c++ - 如何使用节点在 C++ 中编写二叉搜索树的迭代器

转载 作者:行者123 更新时间:2023-12-03 12:50:23 24 4
gpt4 key购买 nike

我正在尝试为二叉搜索树编写一个迭代器,该二叉搜索树由 map 节点组成

Node<Key, Value>* node; 

我必须迭代一组这些,但我真的不知道如何返回迭代器。

bool operator!=(const iterator& rhs) const{ ....idk...}

迭代器&运算符++(){

第二个很令人困惑,因为我不确定如何返回迭代器&

提前致谢

最佳答案

迭代器只是一个代表容器(二叉搜索树)中特定项目的对象。当您递增迭代器(使用++)时,您将移动迭代器以表示容器中的下一个项目。所以你的迭代器必须知道如何遍历到容器中的下一个元素。

您的容器必须能够提供两个迭代器。

begin()   // returns an iterator to the first element.
end() // returns an iterator to the one past the last element.
// when an iterator is incremented passed the end of the container
// it should compare equal to the iterator returned by this call.

您需要为最简单的迭代器(Forward Iterator)之一定义的操作是:

Node<Key, Value>&  operator*()     // Return a reference to the node
// That the current iterator represents.

iterator& operator++() // Advance the iterator to the next element.
// Return a reference to yourself.

iterator operator++(int) // Advance the iterator. But return the
// original value.

bool operator!=(iterator const & rhs) // Check if two iterators represent
// the same node (or end). return true
// if they do not (its not equal).

关于c++ - 如何使用节点在 C++ 中编写二叉搜索树的迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33748301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com