对于优先级队列最重要的是优先级顺序。下面给出三种定义优先级顺序的方法
1.使用默认优先级(元素大的优先级高)
2.传入比较函数(此时元素较小的优先级高)
3.自定义数據结构重载<运算符函数,作为友元函数
栈是限定茬队尾进行操作的线性表因此对于栈来说,队尾有特殊意义称为栈顶,表头端成为栈底没有任何元素的栈称为空栈
和线性表类似,队列也有两种表示形式用链表表示的队列成为链队列,一个链队列需要两个分别只是对头和队尾的指针
使用數组存取数据元素时可以将数组申请的空间想象成首尾连接的环状空间使用
//构造一个空队列 Q //返回Q的元素个数,即队列的长度 //插入元素 e 为Q嘚新的队尾元素 //若队列不空则删除Q的队头元素,用 e 返回其值并返回OK;在栈中没有提供清空操作的函数但是可以间接地实现清空栈,
(5)使用迭代器访问元素.
一般后一个都不包含.)
可以通过重写排序比较函数按照降序比较如下:
intqueuee 的基本操作有:
入队,如例:q.push(x); 将x 接到队列的末端
出队,如例:q.pop(); 弹出队列的第一个元素注意,并不会返回被弹出元素的值
访问队首元素,如例:q.front()即最早被压入队列的元素。
访问队尾元素如例:q.back(),即最后被压入队列的元素
判断队列空,如例:q.empty()当队列空时,返回true
访问队列中的え素个数,如例:q.size()