c
-
C++ STL流迭代器(stream_iterator)用法详解
流迭代器也是一种迭代器适配器,不过和之前讲的迭代器适配器有所差别,它的操作对象不再是某个容器,而是流对象。即通过流迭代器,我们可以读取指定流对象中的数据,也可以将数据写入到流对象中…
-
STL priority_queue自定义排序实现方法详解
前面讲解 priority_queue 容器适配器时,还遗留一个问题,即当 <function> 头文件提供的排序方式(std::less<T> 和 std…
-
如何选出最适合的C++ STL容器?
到此为止,本教程已经讲解了 C++ 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_…
-
empty()和size()都可以判断容器是否为空,谁更好?
到目前为止,我们已经了解了 C++ STL 标准库中 vector、deque 和 list 这 3 个容器的功能和具体用法。学习过程中,读者是否想过一个问题,即这些容器的模板类中…
-
C++ STL deque容器底层实现原理(深度剖析)
事实上,STL 中每个容器的特性,和它底层的实现机制密切相关,deque 自然也不例外。《C++ STL deque容器》一节中提到,deque 容器擅长在序列的头部和尾部添加或删…