随笔分类 - C++ STL
摘要:1. 背景 快速排序虽然平均复杂度为O(N logN) 却可能由于不当的pivot选择,导致其在最坏情况下复杂度恶化为O(N2)。 另外,由于快速排序一般是用递归实现,过度的递归会带来过大的额外负荷,从而拉缓排序的速度。 堆排序经常是作为快速排序最有力的竞争者出现,平均时间上,堆排序的时间常数比快排
阅读全文
摘要:容器适配器,其就是将不适用的序列式容器(包括 vector、deque 和 list)变得适用。 STL 提供了 3 种容器适配器,分别为 stack 栈适配器、queue 队列适配器以及 priority_queue 优先权队列适配器。 容器适配器 基础容器筛选条件 默认使用的基础容器 stack
阅读全文
摘要:在 C++ 里,当我们调用 new 和 delete 进行对象的创建和销毁的时候,也同时会有内存配置操作和释放操作: 这其中的 new 和 delete 都包含两阶段操作: 对于 new 来说,编译器会先调用 ::operator new 分配内存;然后调用 Obj::Obj() 构造对象内容。 对
阅读全文