码迷,mamicode.com
首页 > 其他好文 > 详细

STL学习笔记— —iterator迭代器

时间:2016-05-07 09:05:11      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:

头文件

所有的容器都定义了自己的迭代器类型,所以一般情况下,不需要再自己添加迭代器头文件。但是如果要使用一些特殊的迭代器,如反向迭代器,或者一些迭代器辅助函数,那么就需要添加头文件<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() //返回指向容器尾元素的迭代器

STL学习笔记— —iterator迭代器

标签:

原文地址:http://blog.csdn.net/sin_geek/article/details/51333629

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!