当前位置: 首页 > news >正文

淄博市网站开发昆山网站建设昆山

淄博市网站开发,昆山网站建设昆山,沈阳男科医院排名最好的医院,潍坊做网站建设的公司文章目录 queuequeue的介绍queue的使用 priority_queuepriority_queue介绍priority_queue使用 queue queue的介绍 队列是一种容器适配器,专门用于上下文先进先出的操作中。队列的特性是先进先出,从容器的一端插入,另一端提取元素。   队列…

文章目录

  • queue
    • queue的介绍
    • queue的使用
  • priority_queue
    • priority_queue介绍
    • priority_queue使用

queue

queue的介绍

  队列是一种容器适配器,专门用于上下文先进先出的操作中。队列的特性是先进先出,从容器的一端插入,另一端提取元素。
  队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。
  底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。该底层容器应至少支持以下操作:empty(检测队列是否为空)、size(返回队列中有效元素的个数)、front(返回队头元素的引用)、back(返回队尾元素的引用)、push_back(在队列尾部插入元素)、pop_front(在队列头部删除元素)。
  标准容器类deque和list满足了这些要求。默认请情况下,如果没有为queue实例化指定底层容器类,则默认使用标准容器deque。

queue的使用

函数声明接口说明
queue()构造空的队列
empty()检测队列是否为空,为空就返回true,否则就返回false
size()返回队列中有效元素的个数
front()返回队头元素的引用
back()返回队尾元素的引用
push()在队尾将元素val插入队列
pop()将队头元素弹出队列
int main()
{deque<int> mydeck(3, 100);list<int> mylist(2, 200);queue<int> first;queue<int> second(mydeck);queue<int, list<int>> third;queue<int, list<int>> fourth(mylist);return 0;
}

在这里插入图片描述

int main()
{queue<int> myqueue;int sum(0);cout << myqueue.empty() << endl;for (int i = 1; i <= 10; i++)myqueue.push(i);cout << myqueue.empty() << endl;while (!myqueue.empty()){sum += myqueue.front();myqueue.pop();}cout << "total:" << sum << endl;return 0;
}

在这里插入图片描述

int main()
{queue<int> myints;cout << "0.size:" << myints.size() << endl;for (int i = 0; i < 5; i++)myints.push(i);cout << "1.size:" << myints.size() << endl;myints.pop();cout << "2.size:" << myints.size() << endl;return 0;
}

在这里插入图片描述

int main()
{queue<int> myqueue;myqueue.push(10);myqueue.push(20);myqueue.front() -= myqueue.back();cout << "myqueue.front():" << myqueue.front() << endl;myqueue.back() += myqueue.front();cout << "myqueue.back():" << myqueue.back() << endl;return 0;
}

在这里插入图片描述

  在C++11中,stack的成员函数也新增了emplace和swap。

priority_queue

priority_queue介绍

  优先队列是一种容器适配器,根绝严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。可以当做堆来理解,实际上和堆基本一致。在堆中可以随时插入元素,并且智能检索最大的堆元素(优先队列中位于顶部的元素)。
  优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类。priority_queue提供一组特定的成员函数来访问其元素。元素从特定容器的尾部被抛出,其称为有限队列的顶部。
  底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。容器应该可以通过迭代器访问,并支持以下操作:empty(检测容器是否为空)、size(返回容器中有效元素的个数)、front(返回容器中第一个元素的引用)、push_back(在容器尾部插入元素)、pop_back(删除容器尾部的元素)。需要注意的是,这些操作是priority_queue必须具备的,并非是只能有这些操作。
  标准容器类vector和deque满足这些需求。默认情况下,如果没有为特定的priority_queue类实例化指定容器类,则使用vector。
  需要支持随机访问迭代器,以便始终在内部保持堆结构。容器适配器通过在需要时自动调用算法函数make_heap、push_heap和pop_heap来自动完成此操作。
  优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中元素构造成堆的结构,因此priority_queue就是堆,所有需要用到堆的地方,都可以考虑使用priority_queue。默认情况下priority_queue是大堆。

priority_queue使用

函数声明接口说明
priority_queue()/priority_queue(first, last)构造一个优先级队列
empty()检测优先级队列是否为空,为空就返回true,否则就返回false
size()返回优先队列中有效元素的个数
top()返回优先级队列中最大(最小元素),即堆顶元素
push()在优先级队列中插入元素
pop()删除优先级队列中的最大(最小)元素,即堆顶元素
class mycomparison
{bool reverse;
public:mycomparison(const bool& revparam = false){reverse = revparam;}bool operator() (const int& lhs, const int& rhs) const{if (reverse)return (lhs > rhs);elsereturn (lhs < rhs);}
};int main()
{int myints[] = { 10, 60, 50, 20 };priority_queue<int> first;priority_queue<int> second(myints, myints + 4);priority_queue<int, vector<int>, greater<int>> third(myints, myints + 4);typedef priority_queue<int, vector<int>, mycomparison> mypq_type;mypq_type fourth;mypq_type fifth(mycomparison(true));return 0;
}

在这里插入图片描述

int main()
{priority_queue<int> mypq;int sum(0);for (int i = 0; i < 10; i++)mypq.push(i);cout << "mypq size:" << mypq.size() << endl;cout << "mypq top:" << mypq.top() << endl;while (!mypq.empty()){sum += mypq.top();mypq.pop();}cout << "total:" << sum << endl;return 0;
}

在这里插入图片描述

http://www.yayakq.cn/news/234557/

相关文章:

  • 做传销网站后果严重吗数字营销专业
  • 网站源码上传教程全面的手机网站建设
  • 网站建设知识点的总结花都区营销型网站建设
  • 雪域什么网站是做电影的wordpress升级机制
  • 做网站的数据从哪里来做淘客的网站有哪些
  • 优秀茶叶网站设计新手开网店从哪里找货源
  • 西安网站建设hyk123互联网关键词优化
  • 潍坊专业人员继续教育关键词优化报价查询
  • 央视优购物官方网站微网站预览
  • 网站建设需要多少wordpress登陆的插件
  • 建设政务门户网站的基本意义重庆市建设工程管理信息网
  • 网站解析出问题 邮件收不到了公司做网站的费用计什么科目
  • 网站建设确认函网页版查询系统制作
  • 一个ip 做2个网站吗公司网络推广营销
  • 湖州市城乡建设局网站上海市建设市场管理信息平台网站
  • 网站建设孩子半夜发烧怎么办wordpress小工具不能完全显示
  • wordpress 站群会员主做销售招聘的招聘网站有哪些
  • 做服装网站上海建个人网站比较好的公司
  • 岳阳市规划局建设工程公示网站哈尔滨服务最好的网站优化公司
  • 汕头网站关键词推广网站可以自己建立吗
  • 温州商城网站建设模块化网站建设 局域网
  • 想找个人建网站中国贸易服务网
  • 义乌联合外发加工网怀化新站优化
  • 网站搭建北京什么叫优化
  • 专做童装的网站2022年新闻热点摘抄
  • 旅游网站策划书范文seo教学网seo
  • 全国小学网站建设网站改版公司哪家好
  • 宿迁网站建设推广公司深圳百度地图
  • 万网主机怎么上传网站淘宝排名
  • 深圳app网站电商代运营公司