12月2日笔记C++7

编程入门 行业动态 更新时间:2024-10-20 21:07:06

12月2日<a href=https://www.elefans.com/category/jswz/34/1770047.html style=笔记C++7"/>

12月2日笔记C++7

运算符重载典型应用-迭代器
迭代器模式:
    在不暴露一个对象的内部实现的情况下,提供一种方式,能顺序访问对象的数据元素的    一般情况下,把能存放其它对象的对象,称为 容器对象,如链表、数组等
    在C++中,可以把容器的遍历机制封装成一个对象,称之为 迭代器
    C++的容器类型都应该提供自己的迭代器类型,其中封装了一个指针一组运算符函数
    同时,容器类型 还需要提供 begin  end 两个专门的接口
    通过 begin() 获取容器的首元素迭代器,通过 end() 确定最后一个元素 后面那个位置
    例: 
 

    class List //容器
    {
    public:
        // 迭代器类型
        class Iterator
        {
        public:
            // 迭代器的构造函数
            Iterator(Node* p): p(p) {}
            // 前++函数
            Iterator& operator++()
            {
                p = p->next;
                return *this;
            }
            // * 运算符,返回迭代器指向对象的值
            std::string operator*() const 
            {
                return p->_data;
            }
            // != 运算符函数,用于判断两个迭代器是否指向同一位置
            bool operator!=(const Iterator& rhs) const 
            {
                return p != rhs.p;
            }
        private:
            Node* p;
        };
        // 容器类型要提供begin和end接口
        Iterator begin(); 
        Iterator end();

    private:
        Node* head;
    };

    int main()
    {
        List list;
        for (List::Iterator it = list.begin();  it != list.end(); ++it)
        {
            cout << *it << endl;
        }
    }

具体实例代码链接

【实例】迭代器-运算符重载典型应用 ($1196) · 代码片段 · 代码片段 · CODE CHINA



更多推荐

12月2日笔记C++7

本文发布于:2024-03-23 16:39:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1740432.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笔记

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!