#include <iostream>#include <stack>#include <queue>usingnamespacestd;intmain(){stack<int>s;for(inti=1;i<=10;i++)//循环压入十个元素{s.push(i);}while(!s.empty())//栈非空则循环出栈{cout<<s.top()<<' ';s.pop();//出栈}return0;} swap swap用于交换两个栈的内容。 2. stack的...
swap(_con[child], _con[parent]); parent = child; child = parent * 2 + 1; } else break; } } public: priority_queue() { } template<class InputIterator> priority_queue(InputIterator first, InputIterator last) :_con() { for (int i = _con.size() - 2 >> 1; i >= 0; i--)...
1、stack栈 1)先进后出 栈中只有顶端的元素才可以被外界使用,栈不允许有遍历行为 栈可以判断容器是否为空 empty 栈可以返回元素个数 size 2)常用接口 生活中例子:挤地铁 先上后下 2、queue(队列) 1)先进先出 生活中例子:排队打饭 2)对外接口 3、链表list✨ 1)基本概念 是一种物理存储单元上非连续的存...
1,queue 的常用函数 queue<int>q; q.push() 入队 q.pop() 出队 q.front() 取队首元素 q.size() 查看元素个数 q.empty() 若队列为空 返回 true, 否则 返回 false 清空队列的方法: ① while(!s.empty()) s.pop(); ② queue<int>q; s=q; 用一个全新的队列赋值 ③ queue<int>q; swap(s...
swap用于交换两个栈的内容。 2. stack的模拟实现 stack的模拟实现也比较简单,由于我们之前使用顺序结构来实现栈,那么我们就将vector作为封装容器。代码如下: 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 #include<iostream>#include<vector>using namespace std;template<classT,classContainer=vector<...
1,queue: 执行FIFO 类操作,底部是 deque 来实现。 Member functions empty: size: front: 获取队首元素 back: 获取队尾元素 push: 入队队尾元素 pop: 出队队首元素 emplace(c++11): swap(c++11): 2,priority_queue: 内部是一个 vector,并且时刻保持一个堆结构,内部通过自动的调用 make_heap,push_heap,po...
所以在默认情况下,如果未为priority_queue指定基础容器类,则将使用vector。 成员函数 注: 1、emplace 与 push 相比更加优化了对内存空间的使用,具体可以另行查询 2、swap 是交换两个同一类型的优先队列内的所有元素,如a.swap ( x )即交换队列 a 和 x 的所有元素 ...
v4.swap(v3); 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 1.3、元素个数,容器容量 cout<<v4.size()<<endl;// v4的元素个数 cout<<v4.capacity()<<endl;// v4容量 cout<<v4.empty()<<endl;// 判断容器是否为空,为空时true
swap(queue<T> &other_q):将当前 queue 中的元素和参数 queue 中的元素交换。它们需要包含相同类型的元素。也可以调用全局函数模板 swap() 来完成同样的操作。 queue<T> 模板定义了拷贝和移动版的 operator=(),对于所保存元素类型相同的 queue 对象,它们有一整套的比较运算符,这些运算符的工作方式和 stack 容...
empty())q.pop(); //方法二: q = queue<int>();//直接赋值一个新的queue //方法三: template<class T> void clear(queue<T> &q) { queue<T> empty(); swap(empty, q); } clear(q); 有同学可能会疑惑这三种方法的效率有没有什么区别,我实测了一下,几乎没有区别。在我的电脑上清空一个大小...