Iterator Categories
来源:互联网 发布:百人牛牛作弊辅助软件 编辑:程序博客网 时间:2024/05/21 17:39
1.分类
迭代器有有5种:
- input
- output
- forward(前向)
- Bidirectional(双向)
- Random access
2.迭代器相关辅助函数
- void advance(InputIterator& pos, Dist n)
- Dist distance(InputIterator& pos1, InputIterator& pos2)
- void iter_swap(ForwardIterator1 pos1, ForwardIterator2 pos2)
3.迭代器配接器(Iterator Adapters)
- reverse(逆向)迭代器
vector<int>::iterator pos;
...
vector<int>::reverse_iterator rpos(pos);//注:*rpos != *pos
注:将一个迭代器转化为逆向迭代器的过程中,保持的是实际位置(元素)而非逻辑位置(数值)。(*rpos).base()可以将rpos转为正常迭代器。注:rbegin()==end()
注:
- Insert(安插型)迭代器
- stream(流)迭代器
#include <iterator>#include <algorithm>#include <iostream>#include <vector>#include <string>#include <fstream>using namespace std;int main(){ofstream ofile("ostream.txt");ostream_iterator<string> intWriter(ofile,"\n");intWriter="999";intWriter="77";intWriter="-5";ofile.close();vector<int> coll;for(int i=1;i<=9;++i){coll.push_back(i);}copy(coll.begin(),coll.end(),ostream_iterator<int>(cout));cout<<endl;copy(coll.begin(),coll.end(),ostream_iterator<int>(cout," < "));cout<<endl;return 0;}
#include <iterator>#include <iostream>using namespace std;int main(){istream_iterator<int> intReader(cin);istream_iterator<int> intReaderEOF;while (intReader!=intReaderEOF){cout<<"once: "<<*intReader<<endl;cout<<"once again: "<<*intReader<<endl;++intReader;}return 0;}
注:
Q:当pos为一个iterator时,*pos是否就是pos?
A:貌似是的。例如:"****pos=45;"还是可以执行。
Q:对于outIterator,pos++,++pos是否有作用?
A:什么都没有做。
4.使用自定义的迭代器
自己写迭代器有2种办法可行:
1.提供必要的五种型别定义,就像iterator_traits结构所描述(P284)。
2.提供一个特化的iterator_traits结构。
- Iterator Categories
- C++Iterator Categories(迭代器种类)
- Categories
- Categories
- Categories
- Categories
- Item Categories
- Filter Categories
- NSDictionary-Categories
- Iterator
- Iterator
- Iterator
- iterator
- Iterator
- Iterator
- iterator
- iterator
- Iterator
- WMI005-WMI学习笔记(五)——Using WMI with the .NET Framework(.NET框架使用WMI)
- 第25条:列表优先于数组
- Android Activity生命周期图
- VC调用matlab函数mclcppMlfFeval重复定义
- 黑马程序员——函数部分总结
- Iterator Categories
- vi/vim使用
- 关于Win7系统hiberfil.sys及pagefile.sys两个隐藏文件
- Encounter ORA-03113 Error when create spfile from pfile
- poj 1625 AC自动机上的DP
- C++笔记(2)小问题
- 白天求生存,晚上谋发展
- C++的重要性质:虚函数和多态性
- C# 如何用socket进行通信