STL(三)---迭代器

STL(三)—迭代器

头文件
所有的容器都定义了自己的迭代器类型,所以一般情况下,不需要再自己添加迭代器头文件。但是如果要使用一些特殊的迭代器,如反向迭代器,或者一些迭代器辅助函数,那么就需要添加头文
iterator。

迭代器类型

类型能力提供者
输入迭代器一次向前读取istream
输出迭代器向前写入ostream,inserter
前向迭代器向前读取和写入forward list,unordered containers
双向迭代器向前和向后的读取和写入list,set,multiset,map,multimap
随机存取迭代器随机读取和写入array,vector,deque,string,C-style array

迭代器运算中,++iter比iter++更快,所以最好选用++iter

在这里插入图片描述
输入迭代器

*iter //读取实际元素

iter ->member //读取实际元素的成员

++iter //向前步进(返回新位置)

iter++ //向前步进(返回旧位置)

iter1 == iter2 //判断两个迭代器是否相等

iter1 != iter2 //判断两个迭代器是否不等

TYPE(iter) //copy构造函数

输出迭代器

*iter = value  //将数值写到迭代器所指位置

++iter //向前步进(返回新位置)

iter++ //向前步进(返回旧位置)

TYPE(iter) //copy构造函数

前向迭代器

*iter //存取实际元素

iter ->member //存取实际元素的成员

++iter //向前步进(返回新位置)

iter++ //向前步进(返回旧位置)

iter1 == iter2 //判断两个迭代器是否相等

iter1 != iter2 //判断两个迭代器是否不等

TYPE() //default构造函数

TYPE(iter) //copy构造函数

iter = iter2 //赋值

双向迭代器

*iter //存取实际元素

iter ->member //存取实际元素的成员

++iter //向前步进(返回新位置)

iter++ //向前步进(返回旧位置)

--iter //向后步进(返回新位置)

iter-- //向后步进(返回旧位置)

iter1 == iter2 //判断两个迭代器是否相等

iter1 != iter2 //判断两个迭代器是否不等

TYPE() //default构造函数

TYPE(iter) //copy构造函数

iter = iter2 //赋值

随机存取迭代器

iter[n] //存取索引位置为n的元素
iter+=n //向前跳n个元素(若n为负,则向后跳)
iter-=n //向后跳n个元素(若n为负,则向前跳)
iter+n //传回iter之后的第n个元素
n+iter //传回iter之后的第n个元素
iter-n //传回iter之前的第n个元素
iter1-iter2 //传回iter1和iter2之间的距离
iter1<iter2 //判断iter1是否在iter2之前
iter1>iter2 //判断iter1是否在iter2之后
iter1<=iter2 //判断iter1是否不在iter2之后
iter1>=iter2 //判断iter1是否不在iter2之前

迭代器辅助函数

advance() //使迭代器前进给定的距离 

distance() //返回两个迭代器之间的距离 

next() //使迭代器前进一步 

prev() //使迭代器后退一步 

begin() //返回指向容器首元素的迭代器

end() //返回指向容器尾元素的迭代器
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值