Vector
vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲)。
尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元素比较费时
Deque 和vector一样都是STL的容器,deque是双端数组,而vector是单端的。
以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲)。
#########
priority_queue<int> p1; //默认是 最大值优先级队列
//priority_queue<int, vector<int>, less<int> > p1; //相当于这样写
priority_queue<int, vector<int>, greater<int>> p2; //最小值优先级队列
greater 降序
less 升序
###############
stack
先进后出
链式堆栈
数组堆栈
Queue “先进先出”
List list是一个双向链表容器,可高效地进行插入删除元素。 比数组好
list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。It++(ok) it+5(err)
Set 红黑树的 一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列
集合中的元素按一定的顺序排列
#########pair< set<int>::iterator , set<int>::iterator > pairIt = setInt.equal_range(5);
map 是标准的关联式容器 (key,value)红黑树变体的平衡二叉树
#######map[key]=value。map<int, char> mapA;mapStu.insert( pair<int,string>(3,"小张") );
map<int, int> _map;
_map[0] = 1;
iter->first << " : " << iter->second
四、通过数组的方式插入值
########mapStu[3] = “小刘";
##########mapStu[5] = “小王";
? list的使用场景:比如公交车乘客的存储,随时可能有乘客下车,支持频繁的不确实位置元素的移除插入。
? set的使用场景:比如对手机游戏的个人得分记录的存储,存储要求从高分到低分的顺序排列。
? map的使用场景:比如按ID号存储十万个用户,想要快速要通过ID查找对应的用户。二叉树的查找效率,这时就体现出来了。如果是vector容器,最坏的情况下可能要遍历完整个容器才能找到该用户。
网友评论