首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
容器之分类与各种测试(三)——queue
】的更多相关文章
容器之分类与各种测试(三)——queue
queue是单端队列,但是在其实现上是使用的双端队列,所以在queue的实现上多用的是deque的方法.(只要用双端队列的一端只出数据,另一端只进数据即可从功能上实现单端队列)如下图 例程 #include<stdexcept> #include<string> #include<cstdlib> #include<cstdio> #include<algorithm> #include<iostream> #include<c…
容器之分类与各种测试(三)——stack
stack是栈,其实现也是使用了双端队列(只要不用双端队列的一端,仅用单端数据进出即完成单端队列的功能),由于queue和stack的实现均是使用deque,没有自己的数据结构和算法,所以这俩也被称为容器适配器(container adapter). 例程 #include<stdexcept> #include<string> #include<cstdlib> #include<cstdio> #include<algorithm> #inc…
容器的分类与各种测试(三)——deque
deque是双端队列,其表象看起来是可以双端扩充,但实际上是通过内存映射管理来营造可以双端扩充的假象,如图所示 比如,用户将最左端的buff用光时,map会自动向左扩充,继续申请并映射一个新的buff,右端同理. 例程 #include<stdexcept> #include<string> #include<cstdlib> #include<stdio.h> #include<algorithm>//sort,qsort #include&l…
容器之分类与各种测试(三)——slist的用法
slist和forward_list的不同之处在于其所在的库 使用slist需要包含 #include<ext\list> 而使用forward_list则需要包含 #include<forward_list> 剩余两者调用的API基本相同 例程 #include<stdexcept> #include<string> #include<cstdlib> #include<cstdio> #include<algorithm&g…
容器之分类与各种测试(三)——forward_list的用法
forward_list是C++11规定的新标准单项链表,slist是g++以前的规定的单项链表 例程 #include<stdexcept> #include<string> #include<cstdlib> #include<cstdio> #include<algorithm> #include<iostream> #include<ctime> #include<forward_list> using…
容器之分类与各种测试(三)——list部分用法
list是一个双向链表 例程 #include<stdexcept> #include<memory.h> #include<string> #include<cstdlib>//abort() #include<stdio.h> #include<algorithm>//find() #include<iostream> #include<ctime> #include<list> using n…
容器的分类与各种测试(二)——vector部分用法
向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器. 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版 基础用法在代码注释中说明 //test.cpp #include<iostream> #include<vector> using namespace std; int main() { vector<int>…
容器之分类与各种测试(四)——unordered-multiset
unordered-multiset是不定序关联式容器,其底部是通过哈希表实现功能. (ps:黑色框就是bucket,白色框即为bucket上挂载的元素) 为了提高查找效率,bucket(篮子)的数量应当大于元素的个数,这是因为在bucket上悬挂的元素是通过单链表串起来的,而且一个unordered-multiset上一定会有很多bucket是没有悬挂元素,所以为了提升查找效率,当 元素个数>=bucket个数 时,bucket会自动扩充为原来的两倍左右,并且将元素重新哈希碰撞后再悬挂到buc…
容器之分类与各种测试(四)——multiset
multiset是可重复关键字的关联式容器,其与序列式容器相比最大的优势在于其查找效率相当高.(牺牲空间换取时间段) 例程 #include<stdexcept> #include<string> #include<cstdlib> #include<cstdio> #include<algorithm> #include<iostream> #include<ctime> #include<set> usin…
容器之分类与各种测试(四)——unordered_set和unordered_map
关于set和map的区别前面已经说过,这里仅是用hashtable将其实现,所以不做过多说明,直接看程序 unordered_set #include<stdexcept> #include<string> #include<cstdlib> #include<cstdio> #include<algorithm> #include<iostream> #include<ctime> #include<unorder…