* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * template class T void popElements( T s ) //定义模板函数 { while ( !s.empty() ) { cout s.front() ; //用函数front读取Queue顶上的元素并输出 s.pop(); //用函数pop删除顶上的元素 } } * 什么是迭代器 迭代器是面向对象版本的指针 指针可以指向内存中的一个地址 迭代器可以指向容器中的一个位置 STL的每一个容器类模版中,都定义了一组对应的迭代器类。使用迭代器,算法函数可以访问容器中指定位置的元素,而无需关心元素的具体类型。 * 迭代器 迭代器的类型 输入迭代器 可以用来从序列中读取数据 输出迭代器 允许向序列中写入数据 前向迭代器 既是输入迭代器又是输出迭代器,并且可以对序列进行单向的遍历 双向迭代器 与前向迭代器相似,但是在两个方向上都可以对数据遍历 随机访问迭代器 也是双向迭代器,但能够在序列中的任意两个位置之间进行跳转。 * 迭代器 迭代器适配器 迭代器适配器是用来扩展(或调整)迭代器功能的类。它本身也被称为迭代器,只是这种迭代器是通过改变另一个迭代器而得到的 逆向迭代器 通过重新定义递增运算和递减运算,使其行为正好倒置 插入型迭代器 将赋值操作转换为插入操作。通过这种迭代器,算法可以执行插入行为而不是覆盖行为 例6 应用逆向迭代器和后插迭代器来操作向量容器中的元素 * 迭代器 #include iostream #include vector #include algorithm using namespace std; int main() { int A[] = {1, 2, 3, 4, 5}; const int N = sizeof(A) / sizeof(int); vectorint col1(A,A+N); ostream_iterator int output( cout, ); cout List col1 contains: ; copy( col1.begin(), col1.end(), output ); //输出初始向量容器col1中的元素 * vectorint::iterator pos=col1.begin(); //定义指向初始元素的迭代器 cout\nThe fist element is: *pos; //输出第一个元素 vectorint::reverse_iterator rpos=col1.rbegin(); //应用逆向迭代器指向最后一个元素 cout\nThe last element is: *rposendl; //输出最后一个元素 back_insert_iteratorvectorint iter(col1); //声明后插迭代器 *iter=66; //应用后插迭代器插入元素66 back_inserter(col1)=88; //应用函数后插元素88 copy( col1.begin(), col1.end(), output ); //输出后插操作后的向量容器col1中的元素 coutendl; } * 迭代器相关的辅助函数 advance()函数 将迭代器的位置增加,增加的幅度由参数决定 distance()函数 返回迭代器之间的距离 函数iter_swap() 交换两个迭代器所指向的元素值 例7 用三个迭代器辅助函数来操作列表容器中的元素。 * 迭代器 #include iostream #include list #include algorithm using namespace std; int main() { int A[] = {1, 2, 3, 4, 5}; const int N = sizeof(A) / sizeof(int); listint col1(A,A+N); ostream_iterator int output( cout, ); cout List col1 contains: ; copy( col1.begin(), col1.end(), output ); //输出初始列表容器c
您可能关注的文档
- 第7章局域网和广域网例析.ppt
- 第7章控制系统的校正例析.ppt
- 第7章难加工结构与难加工例析.ppt
- 05线性定常系统的MATLAB实现研讨.ppt
- 05消防系统研讨.ppt
- 6水泵与水泵站9.23(水泵运行工况及工况调节)2.7研讨.ppt
- 05章存储器研讨.ppt
- 生理学讲义5-5研讨.ppt
- 05章风险投资的风险投资机构研讨.ppt
- 05周-第5-6章-选择结构与循环结构研讨.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)