迭代器iterator
现在接着上篇的,写一来标识vector 的元素的对象迭代器iterator:
还是通过具体代码举例:
下面我讲了一个我暑期团队的故事哦~~:
#include<iostream> #include<vector> using namespace std; int main() { vector<string> myteam; myteam.push_back("Kai She"); myteam.push_back("Cai Baobao"); myteam.push_back("This is me"); vector<string>::iterator myIte; //迭代器iterator的引用方法 vector<string>::const_iterator ite; // 常量迭代器,不能引用它来更改它所引用的元素,但是它本身可以更改 cout <<" Your teams are:\n"; for (ite = myteam.begin(); ite != myteam.end(); ++ite)//遍历容器 cout << "\t " << *ite << endl; cout <<" Because Kai She goes to work, Chen Baobao student comes:\n"; myIte = myteam.begin();//更改元素的值,,,此处表示更改第一个元素的值 *myIte = "Chen Baobao";//队长走了,换成了另一个队友~~ cout << "\n Now ,your teams are:\n"; for ( ite = myteam.begin(); ite != myteam.end(); ++ite) cout << *ite << endl; cout <<"\n The teams name ' " << *myIte << " ' has " <<(*myIte).size() << " letters in it.\n";//这个方法不大好 cout << "\n The teams name ' " << *myIte << " ' has " << myIte->size() << " letters in it\n";//第二种方法 cout << "You find a member join in your team\n" ; myteam.insert(myteam.begin(), " Xing Baobao");//添加新的成员,直接加入了一个新成员 cout << " Because you are not excellent enough , you were pop" << endl; myteam.erase(myteam.begin() + 2);//我被我的团队踢出去了~~~哈哈 cout <<"\n Your teams :\n"; for (ite = myteam.begin(); ite != myteam.end(); ++ite) cout << *ite << endl; }
可以顺便看一下运行结果就可以很清楚的理解iterator的用法了~~
具体例子我写的是自己的队员,通过string对象的myIte 的迭代器:用来标识vector中的一个特定元素的值它是vector中引用一种元素的方法;
在遍历容器时:end()成员函数返回容器中最后一个元素之后的迭代器(不是最后一个元素),所以,不能从end()返回的迭代器中获取值。
在删除一个一个元素时用erase,如果要从在内删除的话,可以在begin()后面直接加数字就行:例如要删除第3个元素:
myteam.erase(myteam.begin() + 2);
所以vector以及iterator的基本用法先写这么点了~~~
迭代器iterator的更多相关文章
- 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。
最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...
- VC++ 迭代器 iterator, const_iterator, const iterator
迭代器 iterator, const_iterator, const iterator 迭代器iterator的作用类似于指针. (1)iterator只有针对制定<类型>的容器才有效. ...
- c++中的迭代器 iterator
迭代器iterator的作用类似于指针. iterator只有针对制定<类型>的容器才有效.例如: vector<int> vec; vector<int>::it ...
- Python的迭代器(iterator)和生成器(constructor)
一.迭代器(iterator) 1.迭代器的概述 在Python中,for循环可以用于Python中的任何类型,包括列表.元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器 迭代器 ...
- 设计模式 - 迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释
迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 參考迭代器模式(ite ...
- Java 实现迭代器(Iterator)模式
类图 /** * 自己定义集合接口, 相似java.util.Collection * 用于数据存储 * @author stone * */ public interface ICollection ...
- C++迭代器 iterator【转】
1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型.(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector<int>::iterator iter ...
- Java迭代器Iterator
之前我们实现了迭代器模式,很多编程语言实际上已经内置了迭代器类,比如Java就为我们实现了迭代器Iterator.我们首先来看Iterator中的源码. 通过JDK源码我们发现Iterator是一个接 ...
- 迭代器 Iterator
迭代器 Iterator 2016-5-7 可以这样说,迭代器统一了对容器的访问方式. 考虑这样的情景:原本是对着List编码,但是后来发现需要把相同的代码用于Set.我们需要一种不关心容器类型 而能 ...
随机推荐
- VTK初学一,b_PolyVertex_CellArray多个点的绘制
#ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRend ...
- HttpClient连接池的连接保持、超时和失效机制
HTTP是一种无连接的事务协议,底层使用的还是TCP,连接池复用的就是TCP连接,目的就是在一个TCP连接上进行多次的HTTP请求从而提高性能.每次HTTP请求结束的时候,HttpClient会判断连 ...
- CSS样式案例(1)-文字的排版
本篇介绍的是小窗文字内容的排版,通过该篇文章可以让小伙伴们熟悉以下几个知识点: word-space.overflow.text-overflow. 最终的展示效果如下: 参考步骤: 1. 建立htm ...
- Ubuntu 14 添加Windows风格的底部任务栏
习惯了Windows风格的底部任务栏,而Ubuntu 14是没有的,还好有人做好了一个任务栏插件,可以在线安装: 1.打开终端(Ctrl+Alt+T),然后输入下面的命令 sudo apt-get i ...
- ajax 请求多张图片数据
需求分析: 实现对网页上的图片进行显示.由于读取图片名称相同,而图片内容已发生改变.采用网上所用的要求浏览器不缓存的操作不生效 <META http-equiv="Pragma&quo ...
- 解决IE6不支持position:fixed的bug
/*完整代码 */ /* 除IE6浏览器的通用方法 */ .ie6fixedTL { position: fixed; left:; top:; } .ie6fixedBR { position: f ...
- HDU 5651 计算回文串个数问题(有重复的全排列、乘法逆元、费马小定理)
原题: http://acm.hdu.edu.cn/showproblem.php?pid=5651 很容易看出来的是,如果一个字符串中,多于一个字母出现奇数次,则该字符串无法形成回文串,因为不能删减 ...
- git commit --amend
任何时候,你都有可能需要撤消刚才所做的某些操作.接下来,我们会介绍一些基本的撤消操作相关的命令.请注意,有些撤销操作是不可逆的,所以请务必谨慎小心,一旦失误,就有可能丢失部分工作成果. 有时候我们提交 ...
- Objective C 快速入门学习二
Objective-C 类.对象.方法 1.编写一个复数类: #import <Foundation/Foundation.h>@interface Complex: NSObject / ...
- EOS单向N对1关联
1. N端实体中用于关联的属性可以是主键也可以是非主键,1端的关联字段必须是主键(可以是单主键也可以是复合主键). 如下图关联字段:orgid 2.当在N端选择了用于关联的属性,那么这些属性在N端实体 ...