deque优先队列基本操作

本文介绍了deque作为优先队列的基本操作,包括赋值、元素访问和添加元素的方法,并提供了一个实践练习例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

deque对象的创建
    deque<char> d1;
    deque<int> d2(10);                      //创建一个有十个元素的deque队列
    deque<double> d3(6,10.1);               //创建一个有六个值为10.1的deque队列
    deque<string>d4(begin,end);             //创建一个以[begin,end)区间内的值为元素的deque队列

赋值 deque的赋值,deuqe与vector一样可以assign()函数 ,

    d.assign(n,elem);                       //赋予deque队列d n个elem值;
    d.assign(begin,end);                    //用[begin,end)区间的值赋值

元素访问

    d[int idx];                             //重载了[]运算符,可以直接用[]访问;这一点类似数组
    d.at(int idx);                          //访问idx位置上的元素
    d.front();                              //返回第一个元素
    d.back();                               //返回最后一个元素
    d.begin();                              //返回第一个元素的迭代器;
    d.end();                                //返回指向最后一个元素的下一个迭代器;

添加元素

    d.push_back();                          //在尾部添加元素;
    d.push_front();                         //在头部添加元素;  (注意 vector数组不具有在头部插入的功能)
    d.insert(pos,elem);                     //在pos位置添加元素elem;
    d.insert(pos,n,elem);                   //在pos位置添加n个元素elem;
    d.insert(pos,begin,end);                //在pos位置插入[begin,end)区间值作为元素;
删除元素
    d.pop_back();                           //从尾部删除元素
    d.pop_front();                          //从头部删除元素
    d.erase(pos);                           //从pos位置删除元素
    d.erase(begin,end);                     //删除[begin,end)区间

练习例子

#include<iostream>
#include<cstdio>
#include<cstring>
#include<deque>
using namespace std;
int main()
{
    deque<int> d2(10);//创建一个有十个int类型元素的优先队列
    for(int i=0;i<10;i++){
        d2[i]=i;     //为队列赋值
        cout<<d2.at(i)<<" ";
    }
    cout<<endl;
    d2.push_back(77);
    d2.push_front(99);
    for(int i=0;i<12;i++){
        cout<<d2[i]<<" ";
    }
    cout<<endl;
    d2.pop_back();
    d2.pop_front();
    d2.erase(d2.begin()-3);
    d2.erase(d2.end()-3);
    for(int i=0;i<d2.size();i++){           //size()函数调用返回d2当下的大小;
        cout<<d2.at(i)<<" ";
    }
    cout<<endl;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值