单位如何建设网站,如何建设电影会员网站,深圳制作网站制作,wordpress 用的什么框架目录
前言
一、stack
1. 栈的定义
2. 成员函数
二、queue
1. 队列的定义
2. 成员函数
三、priority_queue
1. 优先队列的定义
2. 成员函数 前言
栈和队列是STL中很重要的两个容器#xff0c;栈的特点是先进后出#xff1b;队列的特点是先进先出。还有优先队列栈的特点是先进后出队列的特点是先进先出。还有优先队列其特点为容器内数据出队列时为按其大小顺序出。
本文将介绍着以上容器并贴出模拟实现。 一、stack
1. 栈的定义 栈一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶另一端称为栈底。栈中的数据元素遵守后进先出LIFOLast In First Out的原则。 //template class T, class Container dequeT class stack;
//T容器内元素数据类型
//Container栈的底层数据结构缺省时默认为双端队列
//例
stackint, vectorint st1; //底层为vector栈内数据类型为intstackstring, liststring st2; //底层为list栈内数据类型为string
2. 成员函数 push(T val)数据入栈pop()数据出栈top()返回栈顶元素size()返回栈内元素个数empty()栈空则返回true否则返回false 二、queue
1. 队列的定义 队列只允许在一端进行插入数据操作在另一端进行删除数据操作的特殊线性表队列具有先进先出 FIFO(First In First Out) 入队列进行插入操作的一端称为队尾 出队列进行删除操作的一端称为队头。 //template class T, class Container dequeT class queue;
//T容器内元素数据类型
//Container栈的底层数据结构缺省时默认为双端队列
//例
queueint, vectorint qu1; //底层为vector队列内数据类型为intqueuestring, liststring qu2; //底层为list队列内数据类型为string
2. 成员函数 push(T val)数据入队列pop()数据出队列top()返回队列头元素size()返回队列内元素个数empty()队列空则返回true否则返回false 三、priority_queue
1. 优先队列的定义 优先队列优先队列也是一种队列只不过不同的是优先队列的出队顺序是按照优先级来的在有些情况下可能需要找到元素集合中的最小或者最大元素可以利用优先队列ADT来完成操作优先队列ADT是一种数据结构它支持插入和删除最小值操作返回并删除最小元素或删除最大值操作返回并删除最大元素 优先队列的底层一般为堆。 //template class T, class Container vectorT, class Compare lesstypename Container::value_type class priority_queue;
//T容器内元素数据类型
//Container栈的底层数据结构缺省时默认为vector
//Compare仿函数STL中提供less与greaterless为大堆greater为小堆
//例
priority_queueint qu1; //底层为vector队列内数据类型为int大堆priority_queuestring, vectorstring, greater qu2; //底层为vector队列内数据类型为string小堆
2. 成员函数 push(T val)数据入堆pop()数据出堆top()返回堆顶元素size()返回队列内元素个数empty()堆空则返回true否则返回false