【C++】 C++标准模板库(十二) 迭代器和STL
来源:互联网 发布:xp无法连接网络打印机 编辑:程序博客网 时间:2024/05/21 09:10
1. C++ Iterators(迭代器)
迭代器可被用来访问一个容器类的所包函的全部元素,其行为像一个指针。举一个例子,你可用一个迭代器来实现对vector容器中所含元素的遍历。有这么几种迭代器如下:
第种容器类都联系于一种类型的迭代器。第个STL算法的实现使用某一类型的迭代器。举个例子,vector容器类就有一个random-access随机迭代器,这也意味着其可以使用随机读写的算法。既然随机迭代器具有全部其它迭代器的特性,这也就是说为其它迭代器设计的算法也可被用在vector容器上。
如下代码对vector容器对象生成和使用了迭代器:
vector<int> the_vector; vector<int>::iterator the_iterator; for( int i=0; i < 10; i++ ) the_vector.push_back(i); int total = 0; the_iterator = the_vector.begin(); while( the_iterator != the_vector.end() ) { total += *the_iterator; the_iterator++; } cout << "Total=" << total << endl;
提示:通过对一个迭代器的解引用操作(*),可以访问到容器所包含的元素。
2. C++ 标准模板库(STL)
C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), lists(链表), 和 stacks(栈)等.
C++ STL 提供给程序员以下三类数据结构的实现:
- 顺序结构
- C++ Vectors
- C++ Lists
- C++ Double-Ended Queues
- 容器适配器
- C++ Stacks
- C++ Queues
- C++ Priority Queues
- 联合容器
- C++ Bitsets
- C++ Maps
- C++ Multimaps
- C++ Sets
- C++ Multisets
程序员使用复杂数据结构的最困难的部分已经由STL完成. 如果程序员想使用包含int数据的stack, 他只要写出如下的代码:
stack<int> myStack;
接下来, 他只要简单的调用 push() 和 pop() 函数来操作栈. 借助 C++ 模板的威力, 他可以指定任何的数据类型,不仅仅是int类型. STL stack实现了栈的功能,而不管容纳的是什么数据类型.
1 0
- 【C++】 C++标准模板库(十二) 迭代器和STL
- C++:STL(标准模板库)
- C++:标准模板库(STL)
- C++STL标准模板库
- C++:标准库和标准模板库STL概述
- C++_标准模板库(STL)
- 【C/C++学院】(12)C++标准模板库STL
- C/C++学习笔记(十)标准模板库STL和string
- C++ STL和标准模板库及C标准库的关系
- C++中的标准模板库STL及容器
- C++,VC++,MFC,STL(standard template library,标准模板库)
- 标准类库 STL C++(转)
- 详细介绍c++/vc++标准模板库(STL)中的map的使用攻略!
- C++---泛函程序设计与标准模板库(STL)基本思想
- STL(标准模板库)
- Stl(标准模板库)
- 标准模板库(STL)
- 【c++——STL】标准模板库STL中优先队列Priority Queues使用手册
- git常用功能及设置
- Linux网络编程之SOCKET文件传输
- [POJ1320] Street Number
- 数据结构算法中用到的存储结构
- 常用数学算式。
- 【C++】 C++标准模板库(十二) 迭代器和STL
- Proguard的Keep使用方法
- 你很烫吗?我很烫——关于栈区和静态存储区的思考
- 初探腾讯Unity手游热更新方案xlua
- eclipse配置环境变量问题
- jquery和prototype.js的区别
- 【JVM学习系列】 JVM内部架构
- 揭示OGG DataPump进程和Server进程运行原理的几篇文章
- CSS知识点