简述C++中STL标准模板库
来源:互联网 发布:电脑发短信软件 编辑:程序博客网 时间:2024/04/25 09:47
关于STL的详细内容,这篇博客描述的非常清楚:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/22/2603525.html
STL:Standard Template Library,标准模版库。
STL六大组件:
容器(Container),是一种数据结构,如list,vector,deques,以模版类的方法提供。
迭代器(Iterator),提供了访问容器中对象的方法。迭代器就如同一个指针。
算法,用来操作容器中的数据的模板函数。例如,STL用sort()来对一个vector中的数据进行排序,用find()来搜索一个list中的对象,函数本身与他们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用。
其它略。
STL容器:
1)序列式容器:vector、deque、list
vector:将元素置于一个动态数组中加以管理,可以随机存取元素(用索引直接存取),数组尾部添加或移除元素非常快速。但是在中部或头部安插元素比较费时。
deques:双端队列。可以随机存取元素(用索引直接存取),数组头部和尾部添加或移除元素都非常快速。但是在中部或头部安插元素比较费时。
list:双向链表。不提供随机存取(按顺序走到需存取的元素,O(n)),在任何位置上执行插入或删除动作都非常迅速,内部只需调整一下指针。
2)关联式容器:元素位置取决于特定的排序准则,和插入顺序无关,set、multiset、map、multimap
set/multiset:内部的元素依据其值自动排序,set内的相同数值的元素只能出现一次。multiset内可包含多个数值相同的元素,内部由二叉树实现,便于查找。
map/multimap:map的元素是成对的键值/实值,内部的元素依据其自动排序,map内的相同数值的元素只能出现一次。multimap内可包含多个数值相同的元素。内部由二叉树实现,便于查找。
另外有其他容器hash_map,hash_set,hash_multiset,hash_multimap。
STL迭代器:
用于提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
迭代器一般声明使用示例:
vector<T>::iterator it;list<T>::iterator it;deque<T>::iterator it;
数据结构
实现头文件
向量(vector)
顺序性容器
<vector>
列表(list)
顺序性容器
<list>
双队列(deque)
顺序性容器
<deque>
集合(set)
关联容器
<set>
多重集合(multiset)
关联容器
<set>
栈(stack)
容器适配器
<stack>
队列(queue)
容器适配器
<queue>
优先队列(priority_queue)
容器适配器
<queue>
映射(map)
关联容器
<map>
多重映射(multimap)
关联容器
<map>
- 简述C++中STL标准模板库
- C++:标准模板库(STL)
- C++STL标准模板库
- C++:STL(标准模板库)
- C++_标准模板库(STL)
- 【c++——STL】标准模板库STL中优先队列Priority Queues使用手册
- 标准模板库STL中Stack参考手册
- 标准模板库STL中Queue参考手册
- C++:标准库和标准模板库STL概述
- 标准模板库(STL)
- STL标准模板库
- STL标准模板库
- STL标准模板库
- STL标准模板库
- STL 标准模板库
- 标准模板库 (STL)
- STL标准模板库
- 标准模板库-STL
- C C++的整数溢出陷阱
- Django1-10-5管理界面中文设置
- 牛客--剑指offer--最小的k个数
- Proteus仿真AT89C52——IO
- 欢迎使用CSDN-markdown编辑器
- 简述C++中STL标准模板库
- C++之析构函数与虚函数
- 坚持#第145天~想好了每天的规律,学习了一部分该学的内容
- 第二课-C++中的引用
- Hexo 搭建个人博客网站
- JAVA程序员面试总结,高手整整理加强版 出自“CSDN(www.csdn.net)”
- [IOS APP]四大名著儿童版-有声故事
- Leetcode: 310.Minimum Height Trees
- 深入浅出学Spring Data JPA