• STL——increment/decrement/dereference操作符


    increment/dereference操作符在迭代器的实现上占有非常重要的地位,因为任何一个迭代器都必须实现出前进(increment,operator++)和取值(dereference,operator*)功能,前者还分为前置式(prefix)和后置式(Postfix)两种。有写迭代器具备双向移动功能,那么就必须再提供decrement操作符(也分前置式和后置式),下面是一个例子:

    #include<iostream>
    using namespace std;
    
    class INT
    {
        friend ostream& operator<<(ostream& os,const INT& i);
    public:
        INT(int i):m_i(i){}
        INT& operator++()
        {
            ++(this->m_i);
            return *this;
        }
    
        const INT operator++(int)
        {
            INT temp=*this;
            ++(*this);
            return temp;
        }
    
        INT& operator--()
        {
            --(this->m_i);
            return *this;
        }
    
        const INT operator--(int)
        {
            INT temp=*this;
            --(*this);
            return temp;
        }
    
        int& operator*() const
        {
            return (int&)m_i;
        }
    private:
        int m_i;
    
    };
    
    ostream& operator<<(ostream& os,const INT &i)
    {
        os<<'['<<i.m_i<<']';
        return os;
    }
    
    int main()
    {
        INT I(5);
        cout<<I++;
        cout<<++I;
        cout<<I--;
        cout<<--I;
        cout<<*I;
    }
    

      运行结果:

  • 相关阅读:
    Oracle Day2
    Orcale Day1
    JavaSE 单例模式
    C#Windows 服务的安装说明
    Json转Hashtable的转换
    将汉字转为拼音
    游标 的使用
    C#后台画图保存为ipg/png的文件
    T-sql 查询
    EF简单的添加修改删除基本语法
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4060585.html
Copyright © 2020-2023  润新知