迭代器
1.迭代器:类中类,通过运算符的重载,用类中类的对象遍历容器
2.迭代器分类:
(1)正向迭代器:iterator(begin(); end();)
(2)反向迭代器:reverse_iterator(rbegin(); rend();)
(3)常正向迭代器:const_iterator(cbegin(); cend();)
(4)常反向迭代器:const_reverse_iterator(crbegin(); crend();)
3.按功能分类:
(1)正向迭代器
(2)双向迭代器
(3)随机访问迭代器
4.迭代器辅助函数
(1)移动:advance(iterator iter,n);
(2)间距:distance(iterator begin(),iterator end());
(3)交换:iter_swap(iterator first,iterator end()-1);
5.流型迭代器
(1)输出流:
ostream_iterator<_Ty> iter(ostream& out);
ostream_iterator<_Ty> iter(ostream& out,char* str);
(2)输入流:
istream_iterator<_Ty> iter;//构造无参对象,是一个错误流
istream_iterator<_Ty> iter(istream& in);
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vecdata = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
//正向
vector<int>::iterator iter;
for (iter = vecdata.begin(); iter != vecdata.end(); iter++)
{
cout << *iter << "\t";
}
//反向
vector<i