C++:如何编写const_iterator?

Pos*_*ubb 8 c++ iterator const-iterator

我用迭代器编写了自己的容器模板.我如何实现const_iterator?

template <class T>
class my_container {
 private:
  ...

 public:
  my_container() : ... { }
  ~my_container() { }

  class iterator : public std::iterator<std::bidirectional_iterator_tag, T> {
  public: ...
Run Code Online (Sandbox Code Playgroud)

Mar*_*ork 5

唯一的区别应该是,当您取消引用 const 迭代器时,您将获得 const 引用,而不是对容器中对象的引用。

  • @ Posco Grubb:不。如果您有采用迭代器的方法,那么模板就是它们。该方法应该适用于任何类似于迭代器的行为。如果该方法需要迭代器而不是 const_iterator,则编译器将生成相应的错误。 (2认同)