【问题标题】:Operators overloading in iterator class in C++C ++中迭代器类中的运算符重载
【发布时间】:2021-07-09 20:23:54
【问题描述】:

我正在尝试做一个小程序,在其中为我自己的向量类使用迭代器。我需要重载operator *() 以从vector 中获取当前元素,operator++() 使当前位置+1,operator !=operator <

这是我尝试创建迭代器并重载一个运算符的课程:

template < typename T>
class MyIterator {
private:
    vectorV<T> & someName;
    int position;

public:
    MyIterator( vectorV<T> & rq)
            : someName( rq ), position()
    {}

    T & operator*()
    {
        return myRingQueue; //???
    }

};

【问题讨论】:

  • 互联网上肯定有成千上万的关于如何创建迭代器的教程和示例。更不用说关于运算符重载的大量书籍、教程和示例了。
  • 对于向量,迭代器通常非常简单,只是一个指向向量中元素的指针的薄包装。 *、+、++ 几乎都属于常规的指针操作。

标签: c++ iterator operator-overloading


【解决方案1】:
T & operator*()
{
    return someName[position];
}

【讨论】:

    猜你喜欢
    • 2020-06-14
    • 2022-01-10
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2013-09-07
    相关资源
    最近更新 更多