网站转化率排名,南阳网站推广排名,ui界面设计图,网站开发行业分析文章目录测试环境priority_queue介绍头文件模块类定义对象构造元素访问元素插入和删除容器大小迭代器其他函数测试环境
系统#xff1a;ubuntu 22.04.2 LTS 64位 gcc版本#xff1a;11.3.0 编辑器#xff1a;vsCode 1.76.2
priority_queue介绍
容器适配器。支持在末端插入…
文章目录测试环境priority_queue介绍头文件模块类定义对象构造元素访问元素插入和删除容器大小迭代器其他函数测试环境
系统ubuntu 22.04.2 LTS 64位 gcc版本11.3.0 编辑器vsCode 1.76.2
priority_queue介绍
容器适配器。支持在末端插入元素在首端删除元素。不支持随机访问。先进先出规则FIFO可以设置元素的优先级最高优先级的元素排在队头默认基础容器为vector还可以使用deque作为基础容器或者支持front()、pop_back()、push_buck()的其他容器。
头文件
#include queue模块类定义
templatetypename _Tp, typename _Sequence vector_Tp,typename _Compare lesstypename _Sequence::value_type class priority_queue{};_Tp表示存储的元素数据类型 _Sequence基础容器默认为vector。 _Compare排序方式可通过函数对象来自定义
对象构造
/*默认构造函数*/
std::priority_queueint priorityque1;/*拷贝构造函数*/
std::priority_queueint priorityque2(priorityque1);/*指定基础容器*/
std::priority_queuestd::string, std::dequestd::string priorityque3;/*指定基础容器并指定排序方式*/
std::priority_queuestd::string, std::dequestd::string ,std::greaterstd::string priorityque4;/*指定范围构造*/
std::vectorint vct1({2,3,1,4,6,5,9,8,7});
std::priority_queueint priorityque5(vct1.begin(),vct1.end());元素访问
函数名返回值功能top()首元素的常量引用获取首元素队列为空时返回值不确定
/*队首元素访问*/
std::cout priorityqueTest.top() std::endl;元素插入和删除
函数返回值功能pop()无删除队列头元素push()无队列尾插入元素emplace()无队列尾插入元素
std::priority_queueint priorityqueTest;
/*元素插入*/
priorityqueTest.push(88);/*元素插入*/
priorityqueTest.emplace(8);/*队首元素删除*/
priorityqueTest.pop(); 容器大小
函数返回值功能empty()bool判断当前容器是否为空为空返回true否则返回falsesize()std::size_t获取当前容器中的元素数量
/*判断队列是否为空*/
std::cout std::boolalpha priorityqueTest.empty() std::endl;
/*获取队列中元素数量*/
std::cout priorityqueTest.size() std::endl;迭代器
不支持
其他函数
函数名返回值功能swap()无交换两个容器的元素
/*交互两个容器元素的值,无返回值*/
std::priority_queueint priorityqueSwap1;
priorityqueSwap1.push(1);
priorityqueSwap1.push(2);
priorityqueSwap1.push(3);
std::priority_queueint priorityqueSwap2;
priorityqueSwap2.push(4);
priorityqueSwap2.push(5);
priorityqueSwap2.push(6);
/*方式1 priorityqueSwap1{6,5,4}, priorityqueSwap2{3,2,1}*/
priorityqueSwap1.swap(priorityqueSwap2);/*priorityqueSwap1{3,2,1}, priorityqueSwap2{6,5,4}*/
std::swap(priorityqueSwap1,priorityqueSwap2);