stl之再看迭代器 迭代器相应型别之五 iterator_category

本文探讨了STL中迭代器的五种类型及其关系,强调了它们在概念和强化上的联系。通过advance函数的例子,解释了如何根据迭代器类型选择不同的函数版本以优化效率。文章还介绍了如何利用重载函数和traits机制来推导迭代器类型,以确定调用哪个内部函数,并阐述了iterator_category在迭代器类型萃取中的作用。
摘要由CSDN通过智能技术生成

根据移动特性和施行操作,迭代器分为5类:

Input iterator:只读
Output iterator:只写
Forward iterator:在此迭代器所形成的区间上进行读写操作
Bidirectional iterator:forward iterator+双向移动
Random Access iterator:随机存储迭代器 前四种迭代器+随机存储(p+n,p-n,p1-p2,p[n],p1<p2)

关系如图所示:



直线和箭头不是继承关系,而是概念(concept)和强化(refinement)关系。

advance()为例:

advance()有两个参数,一个参数为迭代器p,另一个为前进的距离n,对于不同版本的迭代器设计的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值