使用场景 :需要 有序 键值对 且 元素 不重复 的场景 ; std::map 映射容器 与 std::set 集合容器 的区别是 map 容器存储的是 键值对 元素 , 是 pair 对象 , set 容器 存储的是 单纯的 键 单个元素 ; 7、std::multimap 多重映射容器 std::multimap 多重映射容器特点 : 底层结构 :底层由 红黑树 实...
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. 使用场景 当需要按照后进先出的顺序处理元素时选择,栈也可适用于需要实现逆序操...
1、vector的使用场景:比如软件历史操作记录的存储,我们经常要查看历史记录,比如上一次的记录,上上次的记录,但却不会去删除记录,因为记录是事实的描述。 2、deque的使用场景:比如排队购票系统,对排队者的存储可以使用deque,支持头端的快速移除,尾端的快速添加。如果采用vector,则头端移除时,会移动大量的数据,速度慢。
STL的容器主要分为两类,一类是序列式容器,包括vector、deque、list等;一类是关联式容器,包括set、multiset、map、multimap。下面主要对容器进行一下说明 vector插入时从尾部插入,删除时不删除存储空间,如果插入元素时超过预留的空间大小会以2倍的方式扩容后进行数据拷贝并存储。数据读取速度较快,元素尾插速度较快,中间...
使用场景:只负责查找内容(当然也会有添加的操作才能有),具体到某个单位,但这个某个单位是在比set更大的范围。使用场景比如按ID号存储十万个用户,想要快速要通过ID查找对应的用户。二叉树的查找效率,这时就体现出来了。如果是vector容器,最坏的情况下可能要遍历完整个容器才能找到该用户。 其他: 可能很多人不理解vec...
STL容器使用时机 STL容器使用时机 vector的使用场景:比如软件历史操作记录的存储,我们经常要查看历史记录,比如上一次的记录,上上次的记录,但却不会去删除记录,因为记录是事实的描述。 deque的使用场景:比如排队购票系统,对排队者的存储可以采用deque,支持头端的快速移除,尾端的快速添加。如果采用vector,则头端移除时,...