摘要: 1. 背景 快速排序虽然平均复杂度为O(N logN) 却可能由于不当的pivot选择,导致其在最坏情况下复杂度恶化为O(N2)。 另外,由于快速排序一般是用递归实现,过度的递归会带来过大的额外负荷,从而拉缓排序的速度。 堆排序经常是作为快速排序最有力的竞争者出现,平均时间上,堆排序的时间常数比快排 阅读全文
posted @ 2024-04-23 16:31 小熊酱 阅读(38) 评论(0) 推荐(0)
摘要: 容器适配器,其就是将不适用的序列式容器(包括 vector、deque 和 list)变得适用。 STL 提供了 3 种容器适配器,分别为 stack 栈适配器、queue 队列适配器以及 priority_queue 优先权队列适配器。 容器适配器 基础容器筛选条件 默认使用的基础容器 stack 阅读全文
posted @ 2024-04-23 16:26 小熊酱 阅读(41) 评论(0) 推荐(0)
摘要: 作为关联式容器的一种,map 容器存储的都是 pair 对象,也就是用 pair 类模板创建的键值对。其中,各个键值对的键和值可以是任意数据类型,包括C++基本数据类型(int、double 等)、使用结构体或类自定义的类型。 与此同时,在使用 map 容器存储多个键值对时,该容器会自动根据各键值对 阅读全文
posted @ 2024-04-23 10:16 小熊酱 阅读(123) 评论(0) 推荐(0)
摘要: 和 set 容器不同的是,multiset 容器可以存储多个值相同的元素。 multiset 容器类模板的定义如下所示: template < class T, // 存储元素的类型 class Compare = less<T>, // 指定容器内部的排序规则 class Alloc = allo 阅读全文
posted @ 2024-04-23 09:06 小熊酱 阅读(35) 评论(0) 推荐(0)