排序方式 :默认使用 less 仿函数 , 即 < 运算符进行排序 ; 也可以自定义 排序规则 仿函数 ; map 映射容器 不允许重复的键 , multimap 多重映射容器允许重复的键 ; 使用场景 :需要 有序 键值对 且 元素 重复 的场景 ; 二、STL 各容器特点总结 三、STL 各容器使用场景示例 如果需要 随机访问 , 则使用 ve...
queue:队列,适用于需要实现先进先出(FIFO)的数据结构,如任务调度、缓冲区管理等。 stack:栈,适用于需要实现后进先出(LIFO)的数据结构,如函数调用、表达式求值等。 priority_queue:优先队列,适用于需要按优先级进行排序和处理的场景,如任务调度、事件处理等。 这些容器提供了丰富的接口和算法,可以方便地实现各种数据结...
在STL中,默认构造的的stack是以deque为底层容器的; std::stack<T> myStack;// T 是元素类型,例如 int、double 等 当然也可以显示构造,指定底层容器 std::stack<T, std::vector<T>> myStack;// 使用 vector 作为底层容器 2. 使用场景 当需要按照后进先出的顺序处理元素时选择,栈也可适用于需要实现逆序操...
5、set的使用场景:比如对手机游戏的个人得分记录的存储,存储要求从高分到低分的顺序排列。 6、map的使用场景:比如按ID号存储十万个用户,想要快速通过ID查找对应的用户。二叉树的查找效率这时就体现出来了。如果是vector容器,最坏的情况下可能要遍历完整个容器才能找到该用户。
STL的容器主要分为两类,一类是序列式容器,包括vector、deque、list等;一类是关联式容器,包括set、multiset、map、multimap。下面主要对容器进行一下说明 vector插入时从尾部插入,删除时不删除存储空间,如果插入元素时超过预留的空间大小会以2倍的方式扩容后进行数据拷贝并存储。数据读取速度较快,元素尾插速度较快,中间...
1、std::vector 单端数组容器 2、std::deque 双端队列容器 3、std::list 双向链表容器 4、std::set 集合容器 5、std::multiset 多重集合容器 6、std::map 映射容器 7、std::multimap 多重映射容器 二、STL 各容器特点总结 三、STL 各容器使用场景示例 ...
使用场景:比如排队购票系统,对排队者的存储可以采用deque,支持头端的快速移除,尾端的快速添加。如果采用vector,则头端移除时,会移动大量的数据,速度慢。 vector与deque的比较:(数组和链表的特性区别) 一:vector.at()比deque.at()效率高,比如vector.at(0)是固定的,deque的开始位置却是不固定的。 二:如果有大量...
STL容器使用时机 vector的使用场景:比如软件历史操作记录的存储,我们经常要查看历史记录,比如上一次的记录,上上次的记录,但却不会去删除记录,因为记录是事实的描述。 deque的使用场景:比如排队购票系统,对排队者的存储可以采用deque,支持头端的快速移除,尾端的快速添加。如果采用vector,则头端移除时,会移动大量的数据...