STL

vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户在STL使用过程中,并不会感到陌生。
关于set,必须说明的是set关联式容器。set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。

STL中的set容器的一点总结http://www.cnblogs.com/BeyondAnyTime/archive/2012/08/13/2636375.html

c++ list, vector, map, set 区别与用法比较http://blog.csdn.net/alex_xhl/article/details/37692297

STL的构成:1)container 2)generic algorithm
container是STL中定义的类。
generic algorithm是STL中定义的操作container的泛型算法。
container: vector, list, map, set
vector,list顺序性容器,便于进行迭代iterate操作。
map,set关联性容器,便于进行容器中元素值的查找。
map是一对对的key/value组合。通讯录!
我们可以使用find()和count()方法来发现一个键是否存在.
set只有key,对其进行查找操作主要用于判断某值是否在其中。set中元素不能相同,而vector中元素可以相同
set 容器内部所有元素都是按由容器中的比较对象指定的严格弱序规则排序的。被插入的元素总是按该顺序插入到各自对应的位置处。
泛型算法通过函数模板技术,不对容器直接进行操作,而是借由一对iterator表示要操作的元素范围,实现与容器无关的效果。

所有container(包括string类)共有的操作:
1) ==,!=
2) =
3) empty()
4) size()
5) clear()
6) begin()
7) end()
8) insert()
9) erase()

vector,list是两个顺序性容器。
vector以一块连续的内存存放元素,随机访问效率高,插入删除非末尾元素效率低。vector适合存放数列。
list以双向链接而非连续内存存放元素,随机访问效率低,插入删除效率高。list适合迭代插入删除操作的元素集。

map:
http://blog.csdn.net/zhoujiaxq/article/details/9786551

set:
http://www.cnblogs.com/BeyondAnyTime/archive/2012/08/13/2636375.html

原文地址:https://www.cnblogs.com/defe-learn/p/6855997.html