STL
-
C++ STL标准库这么多排序函数,该如何选择?
通过前面的学习我们知道,C++ STL 标准库共提供了 4 种排序函数,这里先带大家回顾一下,如表 1 所示。 表 1 C++ STL排序函数 排序函数 功能 sort() 对指定…
-
STL算法和容器中的成员方法同名时,该如何选择?
通过前面的学习,我们已经掌握了一些 STL 算法的功能和用法。值得一提的是,STL 标准库提供有 70 多种算法函数,其中有些函数名称和 STL 容器模板类中提供的成员方法名相同。…
-
优先使用函数对象自定义STL算法规则
作为一门面向对象的编程语言,使用 C++ 编写程序有一个缺点,即随着代码面向对象程度的提高,其执行效率反而会降低。例如,经实验证明几乎在所有情况下,直接操作一个 double 类型…
-
能用STL算法,绝不自己实现!
前面章节已经介绍了很多算法函数,比如 find()、merge()、sort() 等。不知读者有没有发现,每个算法函数都至少要用一对迭代器来指明作用区间,并且为了实现自己的功能,每…
-
如何将const_iterator转换为iterator类型迭代器?
前面章节中,已经详细介绍了 advance() 和 distance() 函数各自的功能和用法。在此基础上,本节继续讲解如何利用这 2 个函数实现将 const_iterator …
-
C++ STL move_iterator移动迭代器用法详解
C++ 11 还为 STL 标准库增添了一种迭代器适配器,即本节要讲的 move_iterator 移动迭代器适配器。 move_iterator 迭代器适配器,又可简称为移动迭代…
-
C++ STL流缓冲区迭代器(streambuf_iterator)
《C++ STL流迭代器》一节中,讲解了输入流迭代器和输出迭代器的功能和用法,在此基础上,本节继续讲解输入流缓冲区迭代器。 在学习本节之前,读者有必要先了解什么是缓冲区,可阅读《进…
-
C++ STL流迭代器(stream_iterator)用法详解
流迭代器也是一种迭代器适配器,不过和之前讲的迭代器适配器有所差别,它的操作对象不再是某个容器,而是流对象。即通过流迭代器,我们可以读取指定流对象中的数据,也可以将数据写入到流对象中…
-
STL priority_queue底层实现(深度剖析)
priority_queue 优先级队列之所以总能保证优先级最高的元素位于队头,最重要的原因是其底层采用堆数据结构存储结构。 有读者可能会问,priority_queue 底层不是…
-
如何选出最适合的C++ STL容器?
到此为止,本教程已经讲解了 C++ STL 标准库中所有容器的特性、功能以及用法,但考虑到一些读者可能在纠结“什么场景中选用哪个容器”这个问题,本节将带领大…