STL
-
C++ STL无序容器自定义哈希函数和比较规则(超级详细)
前面在讲解 unordered_map、unordered_multimap、unordered_set 以及 unordered_multiset 这 4 种无序关联式容器(哈希…
-
C++ STL无序容器底层实现原理(深度剖析)
在阅读本节内容之前,读者需了解哈希表存储结构的原理,可猛击《哈希表(散列表)详解》一节。 在了解哈希表存储结构的基础上,本节将具体分析 C++ STL 无序容器(哈希容器)底层的实…
-
如何修改关联式容器中键值对的键?
通过前面的学习,读者已经掌握了所有关联式容器(包括 map、multimap、set 和 multiset)的特性和用法。其中需要指出的是,对于如何修改容器中某个键值对的键,所有关…
-
C++ STL关联式容器自定义排序规则(2种方法)
前面在讲解如何创建 map、multimap、set 以及 multiset 容器时,遗留了一个问题,即如何自定义关联式容器中的排序规则? 实际上,为关联式容器自定义排序规则的方法…
-
为什么C++ map容器emplace()、emplace_hint()的执行效率比insert()高?
上一节在学习 C++STL map 容器的 emplace() 和 emplace_hint() 的基本用法时,还遗留了一个问题,即为什么 emplace() 和 emplace_…
-
C++ map(STL map)operator[]和insert()效率对比(深度剖析)
通过前面的学习我们知道,map 容器模板类中提供有 operator[ ] 和 insert() 这 2 个成员方法,而值得一提的是,这 2 个方法具有相同的功能,它们既可以实现向…
-
empty()和size()都可以判断容器是否为空,谁更好?
到目前为止,我们已经了解了 C++ STL 标准库中 vector、deque 和 list 这 3 个容器的功能和具体用法。学习过程中,读者是否想过一个问题,即这些容器的模板类中…
-
C++ STL list容器底层实现(详解版)
前面在讲 STL list 容器时提到,该容器的底层是用双向链表实现的,甚至一些 STL 版本中(比如 SGI STL),list 容器的底层实现使用的是双向循环链表。 图 1 双…
-
C++ STL deque容器底层实现原理(深度剖析)
事实上,STL 中每个容器的特性,和它底层的实现机制密切相关,deque 自然也不例外。《C++ STL deque容器》一节中提到,deque 容器擅长在序列的头部和尾部添加或删…
-
vector<bool>不是存储bool类型元素的vector容器!
前面章节中,已经详细介绍了 vector<T> 容器的功能和用法。特别需要提醒的是,在使用 vector 容器时,要尽量避免使用该容器存储 bool 类型的元素,即避免…