其定义应该提供:
迭代对象(某个容器)的类型,用来决定如何访问下一个元素;
iterator所指的元素类型,决定iterator提领操作的返回值;
//每种容器类型都定义了自己的迭代器类型,用于访问容器内的元素
//定义方法:容器类名::iterator 迭代器名
vector<string>::iterator iter = svec.begin();
//iter被定义为一个iterator,指向一个vector
//元素类型是string,初值指向svec的第一个元素。

- 随机访问:提供了对数组元素进行快速随机访问以及在序列尾部进行快速插入和删除操作。
- 双向访问:插入和删除所花费的时间是固定的,与位置无关。
#include
#include
using namespace std;
int main(int argc, char* argv[])
{
vector<int> vecTemp;
for (int i = 0; i<6; i++)
{
vecTemp.push_back(i);
}
cout <<"Original deque: ";
vector<int>::iterator it;
for (it = vecTemp.begin(); it!=vecTemp.end(); it++)
{
cout <<*it <<" ";
}
return 0;
}
/*
输出结果:
Original deque: 0 1 2 3 4 5
*/
#include
#include
using namespace std;
int main(int argc, char* argv[])
{
deque<int> dequeTemp;
for (int i = 0; i<6; i++)
{
dequeTemp.push_back(i);
}
cout <<"Original deque: ";
deque<int>::iterator it;
for (it = dequeTemp.begin(); it != dequeTemp.end(); it++)
{
cout <<*it <<" ";
}
cout <<endl;
return 0;
}
/*
输出结果:
Original deque: 0 1 2 3 4 5
*/
#include
#include
using namespace std;
int main(int argc, char* argv[])
{
list<int> listTemp;
for (int i = 0; i<6; i++)
{
listTemp.push_back(i);
}
cout << "Original list: ";
list<int>::iterator it;
for (it = listTemp.begin(); it != listTemp.end(); it++)
{
cout << *it << " ";
}
cout << endl;
list<int>::iterator itStart = listTemp.begin();
listTemp.insert(itStart,5,9);
cout << "Result of list: ";
for (it = listTemp.begin(); it != listTemp.end(); it++)
{
cout << *it << " ";
}
cout << endl;
return 0;
}
/*
输出结果:
Original list: 0 1 2 3 4 5
Result of list: 9 9 9 9 9 0 1 2 3 4 5
*/
#include
#include
using namespace std;
int main(int argc, char* argv[])
{
set<char> setTemp;
for (int i = 0; i<6; i++)
{
setTemp.insert('F'-i);
}
cout <<"Original set: ";
set<char>::iterator it;
for (it = setTemp.begin(); it != setTemp.end(); it++)
{
cout <<*it <<" ";
}
cout <<endl;
return 0;
}
/*
输出结果:
Original set: A B C D E F
*/
#include
#include
using namespace std;
typedef map<int, char> MyMap;
int main(int argc, char* argv[])
{
MyMap mapTemp;
for (int i = 0; i<6; i++)
{
mapTemp[i] = ('F'-i);
}
cout <<"Original map: " <<endl;
MyMap::iterator it;
for (it = mapTemp.begin(); it != mapTemp.end(); it++)
{
cout << (*it).first << " --> ";
cout << (*it).second << std::endl;
}
cout <<endl;
return 0;
}
/*
输出结果:
Original map:
0 --> F
1 --> E
2 --> D
3 --> C
4 --> B
5 --> A
*/