优先队列,即Priority Queues 1.简单介绍一下队列(介绍功能,不作分析) C++队列是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。1.back() 返回一个引用,指向最后一个元素2.empty() 如果队列空则返回真3.front() 返回第一个元素4.pop() ...
分类:
其他好文 时间:
2018-07-16 21:44:12
阅读次数:
143
1.对map的简单介绍 Map是STL的一个关联容器,它提供一对一(其中第一个称为关键字,每个关键字只能在map中出现一次,第二个称为该关键字的值)的数据处理能力。 这里说下map内部数据的组织,map内部自建一颗红黑树,这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。 2.m ...
分类:
其他好文 时间:
2018-07-13 16:18:22
阅读次数:
189
介绍: ps:stl容器中也有这两个函数,在这里就不讲了,具体详情参考老师的课件。 1. lower_bound( )是用来查找一个数组中第一个 大于等于 一个数的函数,返回值是这个数的指针。 2. upper_bound( )是用来查找一个数组中第一个 大于 一个数的函数,返回值是这个数的指针。 ...
分类:
其他好文 时间:
2018-07-12 20:16:15
阅读次数:
147
原文:https://www.sohu.com/a/120595688_465979 Vector 就像是 C++ STL 容器的瑞士军刀。Bjarne Stoutsoup 有一句话 – “一般情况下,如果你需要容器,就用 vector”。像我们这样的普通人把这句话当作真理,只需要照样去做。然而,就 ...
分类:
其他好文 时间:
2018-07-04 22:52:51
阅读次数:
165
为什么需要类型萃取 前面我们提到了迭代器,它是一个行为类似于smart pointer之类的东西,主要用于对STL容器中的对象进行访问,而且不暴露容器中的内部结构,而迭代器所指对象的型别称为该迭代器的value type;如果在实际的工程当中我们应该怎么获取STL容器中对象的value type 呢 ...
分类:
编程语言 时间:
2018-06-21 00:07:26
阅读次数:
212
结构体重载 C++中,结构体是无法进行==,>,<,>=,<=,!=这些操作的,这也带来了很多不方便的地方,尤其是在使用STL容器的时候,如果我们可以往语句中传入结构体,一些事情将会变得很简单。 bool operator 运算符 (const 结构体名称 b) const { return(什么时 ...
分类:
其他好文 时间:
2018-05-01 23:33:39
阅读次数:
149
声明||作用 string类本不是STL的容器,但是它与STL容器有着很多相似的操作,因此,把string放在这里一起进行介绍。 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足 ...
分类:
其他好文 时间:
2018-04-30 13:28:39
阅读次数:
158
从零开始写STL 容器 双端队列 什么是双端队列?在介绍vector源码,我们发现在vector前端插入元素往往会引起大量元素的重新分配,双端队列(deque)就是为了解决这一问题,双端队列中在首端和末端插入元素的时间复杂度都为O(1),也许你会说链表不行吗,但是其实链表存在一定的缺陷,比如每个结点 ...
分类:
其他好文 时间:
2018-03-20 20:44:02
阅读次数:
193
从0开始写STL—容器—vector vector又称为动态数组,那么动态体现在哪里?vector和一般的数组又有什么区别?vector中各个函数的实现原理是怎样的,我们怎样使用会更高效? 以上内容我们将通过写一个自己的vector来进行学习 typedef 简析 在容器类的最前面我们会看到许多的t ...
分类:
其他好文 时间:
2018-03-12 13:31:33
阅读次数:
205
STL:容器(模板数据结构),迭代器,算法。 当把一个元素插入到容器中时,便生成了这个元素的副本,因此,元素类型应该支持拷贝构造函数和赋值操作。 array:固定大小的数组。vector:动态数组,当vector已满时,会重新分配一个更大的连续内存,把原先的数据拷贝进去,并释放原来的vector。适 ...
分类:
其他好文 时间:
2018-03-03 21:28:54
阅读次数:
114