map、queue、priority

map、queue、priority,第1张

map、queue、priority

一、map(映射)

常用函数

#include 
#include 
using namespace std;
int main(){
mapa;                //定义
a['c']=11;
a['c']=22;                     //map中的键是唯一的('c'为键,22为值)
a['z']=55;
a['b']=76;
a['n']=41;
a['k']=0;
cout<::iterator it=a.begin();   //迭代器
for(it;it!=a.end();it++)          //通过的迭代器访问
    cout<first<<" "<second<::iterator lz=a.begin();lz!=a.end();lz++)
    cout<first<<" "<second< 

 输出

注:1.如果是字符串到整型的映射,必须使用string而不能用char数组。

        2.map的键和值可以是STL容器,如:  map,int>mp;

二、queue(队列

常用函数:

#include 
#include 
using namespace std;
int main(){
queuea;      //定义
for(int i=1;i<=5;i++)
    a.push(i);        //元素入队
cout<

输出

 

 注意:在使用front()和back()前,必须用empty()判断队列是否为空,否则可能会出现错误。

三、priority_queue(优先队列)

1、常用函数与queue的push()、empty()、size()相同,两者函数pop()有点不同。

优先队列没有front()和back(),但有函数top()

#include 
#include 
using namespace std;
int main(){
priority_queuea;
for(int i=1;i<=5;i++)
    a.push(i);
if(a.empty()==true){
    cout<<"Empty"< 

输出

5

4

注意:在优先队列中,队首元素一定是当前队列中优先级最高的那一个。

2、priority_queue内优先级

(1)默认数字(字典序)越大优先级越高。

priority_queuea;
priority_queue,less >a;

 以上两种定义是一样的。

可以通过以下定义使数字越小优先级越大

priority_queue,greater >a;

(2)对于结构体来说,可通过与sort差不多的方式来实现

#include 
#include 
using namespace std;
struct zz{
string n;int p;
}r1,r2,r3;
struct cmp{
bool operator ()(zz a,zz b){
return a.p>b.p;
}
};
int main(){
priority_queue,cmp> a;
r1.n="No.1";r1.p=6;
r2.n="No.2";r2.p=4;
r3.n="No.3";r3.p=1;
a.push(r1);
a.push(r2);
a.push(r3);
if(a.empty()==true)cout<<"Empty"< 

输出

No.3  1

四、stack(栈)

常用函数:

#include 
#include 
using namespace std;
int main(){
stack a;
for(int i=1;i<=5;i++)
    a.push(i);              //入栈
if(a.empty()==true)       //检测stact是否为空
    cout<<"Empty"< 

输出

5

4

五、pair

可以看作一个内部有两个元素的结构体。

常见用法:

#include 
#include 
using namespace std;
int main(){
paira('s',7);
pairb(1,8);
pairc(1,6);
if(b>c)cout<<"b>c"<d;
d.insert(a);
d.insert(make_pair('a',2));
d.insert(pair('j',0));     //pair可作为map的键值对来进行插入
for(map::iterator it=d.begin();it!=d.end();it++)
    cout<first<<" "<second< 

输出

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5719144.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存