文章分类 -  C++

摘要:priority_queue 容器适配器模拟的也是队列这种存储结构,即使用此容器适配器存储元素只能“从一端进(称为队尾),从另一端出(称为队头)”,且每次只能访问 priority_queue 中位于队头的元素。但是,priority_queue 容器适配器中元素的存和取,遵循的并不是 “First 阅读全文
posted @ 2021-09-04 10:04 默行于世 阅读(483) 评论(0) 推荐(0)
摘要:queue 容器适配器有 2 个开口,其中一个开口专门用来输入数据,另一个专门用来输出数据。 这种存储结构最大的特点是,最先进入 queue 的元素,也可以最先从 queue 中出来,即用此容器适配器存储数据具有“先进先出(简称 "FIFO" )”的特点,因此 queue 又称为队列适配器。 que 阅读全文
posted @ 2021-09-04 09:44 默行于世 阅读(147) 评论(0) 推荐(0)
摘要:stack 栈适配器是一种单端开口的容器,实际上该容器模拟的就是栈存储结构,即无论是向里存数据还是从中取数据,都只能从这一个开口实现操作。 stack 适配器的开头端通常称为栈顶。由于数据的存和取只能从栈顶处进行操作,因此对于存取数据,stack 适配器有这样的特性,即每次只能访问适配器中位于最顶端 阅读全文
posted @ 2021-09-04 09:22 默行于世 阅读(70) 评论(0) 推荐(0)
摘要:虽然每种无序容器都指定了默认的 hash<key> 哈希函数和 equal_to<key> 比较规则,但它们仅适用于存储基本类型(比如 int、double、float、string 等)数据的无序容器。换句话说,如果无序容器存储的数据类型为自定义的结构体或类,则 STL 标准库提供的 hash<k 阅读全文
posted @ 2021-09-03 21:18 默行于世 阅读(1115) 评论(0) 推荐(1)
摘要:unordered_multiset 容器大部分的特性都和 unordered_set 容器相同,包括: unordered_multiset 不以键值对的形式存储数据,而是直接存储数据的值; 该类型容器底层采用的也是哈希表存储结构,它不会对内部存储的数据进行排序; unordered_multis 阅读全文
posted @ 2021-09-03 21:11 默行于世 阅读(172) 评论(0) 推荐(0)
摘要:unordered_set 容器,可直译为“无序 set 容器”,即 unordered_set 容器和 set 容器很像,唯一的区别就在于 set 容器会自行对存储的数据进行排序,而 unordered_set 容器不会。总的来说,unordered_set 容器具有以下几个特性: 不再以键值对的 阅读全文
posted @ 2021-09-03 20:59 默行于世 阅读(324) 评论(0) 推荐(0)
摘要:C++ STL 标准库中,除了提供有 unordered_map 无序关联容器,还提供有和 unordered_map 容器非常相似的 unordered_multimap 无序关联容器。和 unordered_map 容器一样,unordered_multimap 容器也以键值对的形式存储数据,且 阅读全文
posted @ 2021-09-03 20:49 默行于世 阅读(937) 评论(0) 推荐(0)
摘要:unordered_map 容器,直译过来就是"无序 map 容器"的意思。所谓“无序”,指的是 unordered_map 容器不会像 map 容器那样对存储的数据进行排序。换句话说,unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unord 阅读全文
posted @ 2021-09-03 20:38 默行于世 阅读(787) 评论(0) 推荐(0)
摘要:自定义容器排序规则 1) 使用函数对象自定义排序规则 不知道函数对象是什么请浏览C++ 函数对象(仿函数) 无论关联式容器中存储的是基础类型(如 int、double、float 等)数据,还是自定义的结构体变量或类对象(包括 string 类),都可以使用函数对象的方式为该容器自定义排序规则。下面 阅读全文
posted @ 2021-09-03 20:17 默行于世 阅读(732) 评论(0) 推荐(0)
摘要:如果一个类将()运算符重载为成员函数,这个类就称为函数对象类,这个类的对象就是函数对象。函数对象是一个对象,但是使用的形式看起来像函数调用,实际上也执行了函数调用,因而得名。下面是一个函数对象的例子。 #include <iostream> using namespace std; class CA 阅读全文
posted @ 2021-09-03 20:03 默行于世 阅读(272) 评论(0) 推荐(0)
摘要:和 map、multimap 容器不同,使用 set 容器存储的各个键值对,要求键 key 和值 value 必须相等。 基于 set 容器的这种特性,当使用 set 容器存储键值对时,只需要为其提供各键值对中的 value 值(也就是 key 的值)即可。map、multimap 容器都会自行根据 阅读全文
posted @ 2021-09-03 19:46 默行于世 阅读(226) 评论(0) 推荐(0)
摘要:multimap multimap 容器具有和 map 相同的特性,即 multimap 容器也用于存储 pair<const K, T> 类型的键值对(其中 K 表示键的类型,T 表示值的类型),其中各个键值对的键的值不能做修改;并且,该容器也会自行根据键的大小对存储的所有键值对做排序操作。和 m 阅读全文
posted @ 2021-09-03 19:23 默行于世 阅读(170) 评论(0) 推荐(0)
摘要:作为关联式容器的一种,map 容器存储的都是 pair 对象,也就是用 pair 类模板创建的键值对。其中,各个键值对的键和值可以是任意数据类型,包括 C++ 基本数据类型(int、double 等)、使用结构体或类自定义的类型。 通常情况下,map 容器中存储的各个键值对都选用 string 字符 阅读全文
posted @ 2021-09-02 22:37 默行于世 阅读(686) 评论(0) 推荐(0)
摘要:关联式容器存储的是“键值对”形式的数据,比如: <"C语言教程", "http://c.biancheng.net/c/"> <"Python教程", "http://c.biancheng.net/python/"> <"Java教程", "http://c.biancheng.net/java/ 阅读全文
posted @ 2021-09-02 22:11 默行于世 阅读(105) 评论(0) 推荐(0)
摘要:STL list 容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list 容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中。 可以看到,list 容器中各个元素的前后顺序是靠指针来维系的,每个元素都配备了 2 个指针,分别指向它的前一个元素和后 阅读全文
posted @ 2021-09-02 21:29 默行于世 阅读(572) 评论(0) 推荐(0)
摘要:deque 是 double-ended queue 的缩写,又称双端队列容器。deque 容器和 vecotr 容器有很多相似之处,比如: deque 容器也擅长在序列尾部添加或删除元素(时间复杂度为O(1)),而不擅长在序列中间添加或删除元素。 deque 容器也可以根据需要修改自身的容量和大小 阅读全文
posted @ 2021-09-02 20:24 默行于世 阅读(127) 评论(0) 推荐(0)
摘要:vector 容器是 STL 中最常用的容器之一,它和 array 容器非常类似,都可以看做是对 C++ 普通数组的“升级版”。不同之处在于,array 实现的是静态数组(容量固定的数组),而 vector 实现的是一个动态数组,即可以进行元素的插入和删除,在此过程中,vector 会动态调整所占用 阅读全文
posted @ 2021-09-02 19:20 默行于世 阅读(585) 评论(0) 推荐(0)
摘要:std::array是在C++11标准中增加的STL容器,它的设计目的是提供与原生数组类似的功能与性能。也正因此,使得std::array有很多与其他容器不同的特殊之处,比如:std::array的元素是直接存放在实例内部,而不是在堆上分配空间;std::array的构造函数、析构函数和赋值操作符都 阅读全文
posted @ 2021-09-02 19:03 默行于世 阅读(486) 评论(0) 推荐(0)
摘要:STL STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。 STL 最初由惠普实验室开发,于 阅读全文
posted @ 2021-09-02 16:57 默行于世 阅读(156) 评论(0) 推荐(0)
摘要:GC(垃圾收集garbage collection) 垃圾收集器是一种动态存储分配器,它自动释放程序不再需要的已分配的块,这些块也称为垃圾。在程序员看来,垃圾就是不再被引用的对象。自动回收垃圾的过程则称为垃圾收集(garbage collection)。在一个支持垃圾收集的语言中,程序显式地申请内存 阅读全文
posted @ 2021-09-01 20:00 默行于世 阅读(281) 评论(0) 推荐(0)