模板二进制树的迭代器
Iterator for template binary tree
我为二进制树编写模板类:
template <class T>
class Tree {
public:
Tree():head_(NULL),size_(0){}
~Tree();
bool isEmpty()const {return size_ == 0;};
bool insert(const T& ele);
bool remove(const T& ele);
size_t size() {return size_;}
public:
class inorder_iterator
{
inorder_iterator& operator++ ();
private:
Node<T>* cur_;
};
}
运算符++的定义是什么?(我无法使用以下代码进行编译)
template <class T>
Tree<T>::inorder_iterator&
Tree<T>::inorder_iterator::operator++ ()
{
//....
}
通过这些更改编译:
template <class T>
class Node {};
template <class T>
class Tree {
Node<T> head_;
size_t size_;
public:
Tree():head_(NULL),size_(0){}
~Tree();
bool isEmpty()const {return size_ == 0;};
bool insert(const T& ele);
bool remove(const T& ele);
size_t size() {return size_;}
public:
class inorder_iterator
{
inorder_iterator& operator++ ();
private:
Node<T>* cur_;
};
};
template <class T>
typename Tree<T>::inorder_iterator&
Tree<T>::inorder_iterator::operator++ ()
{
//....
}
相关文章:
- 使用std::multimap迭代器创建std::list
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- C++中带有List类的迭代器Segfault
- 如何在c++迭代器类型中包装std::chrono
- 集合上的输出迭代器:assign和increment迭代器
- Boost Spirit,获取迭代器内部语义动作
- 二进制表达式的操作数无效 - 使用 for 和迭代器
- 无法使用迭代器查找类对象。(二进制 '==': 'userInfo' 不定义此运算符)
- 使用二进制搜索树中的迭代器对象访问左侧节点
- 如何将一组二进制树的迭代器划分
- 在自定义双链接列表中的自定义迭代器的取消运算符,找不到二进制操作员
- C2676 二进制"++":设置迭代器<TElement>未定义此运算符
- 二进制搜索树中按顺序遍历的复杂性(使用迭代器)
- 正确读取二进制文件并使用流迭代器
- C++二进制文件和迭代器:使用ifstreambuf_titerator实现1:1
- 模板二进制树的迭代器
- 如何使用节点在c++中为二进制搜索树编写迭代器
- 通过传递子迭代器进行二进制搜索
- c++初级二进制搜索迭代器
- 数据结构-C++,实现二进制树(长)的自定义迭代器