STL之迭代器
STL Container | Type of Iterators Supported | |
vector | random access iterators | 元素严格有序(类似数组) |
deque | random access iterators | |
list | bidirectional iterators | 仅能通过某个 元素找到其直 接前驱和直接 后继(类似链 表) |
set | bidirectional iterators | |
multiset | bidirectional iterators | |
map | bidirectional iterators | |
multimap | bidirectional iterators | |
stack | no iterator support | |
queue | no iterator support | |
priority_queue | no iterator support |
类别 | 运算符 | 描述 |
All iterators | ++p | Preincrementan iterator. 前置自增 |
p++ | Postincrementan iterator. 后置自增 | |
Input iterators | *p | Dereference an iterator (used as rvalue).迭代器解引用(仅做右值) |
p1 == p2 | Evaluates true if p1 and p2 point to the same element. | |
p1 != p2 | Evaluates true if p1 and p2 point to different elements. | |
Output iterators | *p | Dereference an iterator (used as lvalue).迭代器解引用(仅做左值) |
Bidirectionliterators | --p | Predecrementan iterator. 前置自减 |
p-- | Postdecrementan iterator. 后置自减 | |
Random-access iterators | p += i | Increment iterator p by ipositions. |
p -= i | Decrement iterator p by i positions. | |
p + i | Returns an iterator ith position after p. | |
p - i | Returns an iterator ithposition before p. | |
p1 < p2 | Returns true if p1 is before p2. | |
p1 <= p2 | Returns true if p1 is before or equal to p2. | |
p1 > p2 | Returns true if p1 is after p2. | |
p1 >= p2 | Returns true if p1 is after p2 or equal to p2. | |
p[i] | Returns the element at the position p offset by i. |
STL之迭代器的更多相关文章
- STL的迭代器和类型萃取
今天就可以把STL库中迭代器的实现,和类型萃取好好整理一下了 迭代器的设计思维是STL的关键所在,在STL的实际运用和泛型思维,迭代器都扮演着十分重要的角色,STL力求把数据容器和算法的概念分开来,于 ...
- 带你深入理解STL之迭代器和Traits技法
在开始讲迭代器之前,先列举几个例子,由浅入深的来理解一下为什么要设计迭代器. //对于int类的求和函数 int sum(int *a , int n) { int sum = 0 ; for (in ...
- C++ 标准模板库(STL)——迭代器(iterators)的用法及理解
C++ STL中迭代器(iterators)用于遍历对象集合的元素.由于容器大小随着插入删除等操作动态改变,无法像静态数组那样获取数组长度然后遍历容器里的所有元素:这时就需要迭代器,每次从容器内第一个 ...
- STL之迭代器(iterator)
STL的中心思想在于:将数据容器和算法分开,彼此独立设计,最后再用一帖粘着剂将它们撮合在一起.没错,这个粘着剂正是迭代器(iterator).迭代器的主要目的是通过遍历来对容器中元素进行相关操作.算法 ...
- C++STL之迭代器2
在学习c++ STL的时候,整天碰到迭代器,也整天用,但是,到底它是个什么东西,很多人没有一个认识.这里我通过几个小的DEMO,来看看迭代器.首先我实现了一个十分简陋的vector类: templat ...
- C++STL之迭代器
迭代器 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定具有地址值.例如, ...
- STL容器迭代器失效分析
连续内存序列容器(vector, string, deque) 对于连续内存序列STL容器,例如vector,string,deque,删除当前iterator会使得后面所有的iterator都失效, ...
- C++ STL中迭代器失效的问题
my_container.erase(iter); 其中my_container是STL的某种容器,iter是指向这个容器中某个元素的迭代器.如果不是在for,while循环中,这种方式删除元素没有问 ...
- ###STL学习--迭代器
点击查看Evernote原文. #@author: gr #@date: 2014-08-23 #@email: forgerui@gmail.com STL中的迭代器. ###stl学习 |--迭代 ...
随机推荐
- 用ie调试的时候显示:脚本调试程序无法连接到目标进程,已附加调试程序。
解决方案如图所示: 解决方案: 在internet的选项工具中选中高级然后去掉禁止脚本调试的情况:
- H264-AVS POC理解
H264码流的输出顺序是编码顺序,所以在编码B帧的时候,由于B是双向预测,需要先编码后面编码帧P/I,这时候先输出I/P,后面才有B帧. 在解码段拿到相应的I/P帧后,不能马上丢到buffer lis ...
- Prim算法POJ1258
http://poj.org/problem?id=1258 这道题是最简单的一个啦,,,, #include<stdio.h> #include<iostream> #inc ...
- 2014年值得学习的25个PS CS6教程(一)
热爱PS的朋友看过来~~~下面跟大家推荐10个高端大气上档次的PS教程(都是英文的哦) 1.为4D电影创建一副3D海报 2.制作3D水果文字 3.肖像图混合数字工艺 4.‘Doctrich – Pos ...
- 手游设备ID
android: imei: IMEI(International Mobile Equipment Identity)是国际移动设备标识的缩写,IMEI由15位数字(英文字母)组成. mac: 是指 ...
- ASPXGridView用法
一.ASPXGridView外观显示 属性: Caption----列的标题( KeyFieldName----数据库字段 SEOFriendly 是否启用搜索引擎优化 Summary 指定分页汇总信 ...
- Java学习一
Java程序的运行机制和JVM JVM(java 虚拟机) Java Virtual Machine java语言比较特殊,由Java语言编写的程序需要经过编译步骤, JDK java SE ...
- PAT1023. Have Fun with Numbers
//水题,但是考点不水,可能用的strlen属于string库,但是只能用于字符,不能用数字,因为\0就是0.出现0无法判断,其次二倍时有可能有进位 //第一次在二倍进位上出了问题 #include& ...
- js 获取当前日期时间 格式为 yyyy-mm-dd hh:MM:ss
------------------------------------------------------------------------------------ js 获取当前日期时间 格式为 ...
- 【.NET】单例模式标准写法
public sealed class Singleton { private static Singleton instance = null; static readonly object pad ...