A

1)概述

要访问顺序容器,关联容器中的元素就要通过迭代器进行。迭代器是个变量,类似于指针

2)分类

按照定义方式不同可分为四种(iterator, const_iterator, reverse_iterator, const_reverator_iterator)

3)定义

4)例子

#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<int>v;
for(int i=;i<;++i)
v.push_back(i);
vector<int>::iterator n;
for(n=v.begin();n!=v.end();++n){
cout<<*n<<" ";
*n *=; //把每个元素都变为原来的两倍
}
cout<<endl;
//用反向迭代器遍历容器
for(vector<int>::reverse_iterator j=v.rbegin();j!=v.rend();++j) //注意反向
cout<<*j<<" ";
return ;
}

++i比i++要更有效率,因为重载的问题,后置++多生成一个临时对象

B 迭代器的功能分类

1)迭代器的功能分类(p是迭代器,i是整型)

*   :正向迭代器。 ++P,  P++,  *p

** :双向迭代器。正向迭代器的全部功能以及 p--,  --p

***:随机访问迭代器。

p+=i;

p-=i;

p[i];

< , > , <= , >= 比较

2)不同容器上的迭代器得分功能

C 迭代器的辅助函数

1)

*    :advance(p,n); 使迭代器p向前或向后移动n个元素

**  :distance(p,q);计算两个迭代器之间的距离

***:iter_swap(p,q);交换两个迭代器指向的值

使用上述函数需要包含头文件algorithm

2)示例

//迭代器的辅助函数
#include<iostream>
#include<algorithm>
#include<list>
using namespace std;
int main(){
int a[]={,,,,};
list<int>lst(a,a+); //数组名即指针,类似迭代器,故此处可用
list<int>::iterator p = lst.begin();
advance(p,);
cout<<"1:"<<*p;
list<int>::iterator q = lst.end();
q--;
swap(p,q);
cout<<endl<<"2:";
for(p=lst.begin();p!=lst.end();++p)
cout<<*p<<" ";
return ;
}

1.3 迭代器 - iterator的更多相关文章

  1. 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。

    最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...

  2. VC++ 迭代器 iterator, const_iterator, const iterator

    迭代器 iterator, const_iterator, const iterator 迭代器iterator的作用类似于指针. (1)iterator只有针对制定<类型>的容器才有效. ...

  3. 迭代器iterator

    现在接着上篇的,写一来标识vector 的元素的对象迭代器iterator: 还是通过具体代码举例: 下面我讲了一个我暑期团队的故事哦~~: #include<iostream> #inc ...

  4. c++中的迭代器 iterator

    迭代器iterator的作用类似于指针. iterator只有针对制定<类型>的容器才有效.例如: vector<int> vec; vector<int>::it ...

  5. Python的迭代器(iterator)和生成器(constructor)

    一.迭代器(iterator) 1.迭代器的概述 在Python中,for循环可以用于Python中的任何类型,包括列表.元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器 迭代器 ...

  6. 设计模式 - 迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释

    迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 參考迭代器模式(ite ...

  7. Java 实现迭代器(Iterator)模式

    类图 /** * 自己定义集合接口, 相似java.util.Collection * 用于数据存储 * @author stone * */ public interface ICollection ...

  8. C++迭代器 iterator【转】

    1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型.(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector<int>::iterator iter ...

  9. Java迭代器Iterator

    之前我们实现了迭代器模式,很多编程语言实际上已经内置了迭代器类,比如Java就为我们实现了迭代器Iterator.我们首先来看Iterator中的源码. 通过JDK源码我们发现Iterator是一个接 ...

  10. 迭代器 Iterator

    迭代器 Iterator 2016-5-7 可以这样说,迭代器统一了对容器的访问方式. 考虑这样的情景:原本是对着List编码,但是后来发现需要把相同的代码用于Set.我们需要一种不关心容器类型 而能 ...

随机推荐

  1. iOS开发——UI基础-按钮内边距,图片拉伸

    一.内边距 UIButton有三个属性,分别可以设置按钮以及内部子控件的内边距 1.contentEdgeInsets 如果是设置contentEdgeInsets, 会把UIImageView和UI ...

  2. BZOJ1212——L语言

    题目大意:每一个字符串都可以分解成一些个单词组成,现在给你一些单词,再给你一个字符串, dp吧,设f[i]为从0开始,到i结束的字符串前缀是否可以被分解,因为单词长度很小,所以,这就T了, (什么逻辑 ...

  3. Unity手游之路<一>C#版本Protobuf

    http://blog.csdn.net/janeky/article/details/17104877 个游戏包含了各种数据,包括本地数据和与服务端通信的数据.今天我们来谈谈如何存储数据,以及客户端 ...

  4. [转载]Web 研发模式演变

    原文链接:https://github.com/lifesinger/blog/issues/184 前不久徐飞写了一篇很好的文章:Web 应用的组件化开发.本文尝试从历史发展角度,说说各种研发模式的 ...

  5. memcache 与 mencached扩展的区别

    memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要频繁访问数据库的网站访问速 ...

  6. mysql 字符集设置方法

    php 5.6,mysql 5.5/etc/my.cnf (1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值, 如 default-character-set = utf8c ...

  7. Linux system 函数的一些注意事项

    在日常的代码编程中 , 我们可以利用system  函数去调用一些我们自己想调用的命令 , 并获取他的返回值. 函数的原型如下: int system(const char *command); 上一 ...

  8. java写文件

                                  randomAccessFile.close();              }                  e.printStack ...

  9. 微型Http服务器Tiny Http Server

    Tiny Http Server 一个简单的跨平台Http服务器.服务器部分使用了Mongoose的代码,界面是使用QT开发的. 开发为了在临时需要使用一个http服务器来做发布代码文档的时候,不用去 ...

  10. java去除字符串中的空格、回车、换行符、制表符

    import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author chzeze * 2016-11-07 */ ...