作业介绍

家庭作业

必做

  • 队列练习2
  • 堆排序
  • 第k大的数

提高

  • 世界杯
  • Cow Line S

双端队列

概述:deque(双端队列)是由一段一段的定量连续空间构成,可以向两端发展,因此不论在尾部或头部安插元素都十分迅速。 在中间部分安插元素则比较费时,因为必须移动其它元素。
#include <deque> // deque属于std命名域的,因此需要通过命名限定,例如using std::deque;
#include <iostream>

using namespace std;

itn main(){
    deque<int> qu; // 定义一个int类型的双端队列que
    return 0;
}
常用操作函数
  • 获取容器大小:que.size();
  • 容器判空(返回值为0时表示非空,1表示空):que.empty();
  • 队首添加元素:que.push_front(元素);
  • 队尾添加元素:que.push_back(元素);
  • 删除队首元素:que.pop_front();
  • 删除队尾元素:que.pop_back();
  • 清空所有元素:que.clear();
  • 下标访问(并不会检查是否越界):que[1];
  • 访问第一个元素:que.front();
  • 访问最后一个元素:que.back();

优先队列

优先队列优先级修改
//普通优先队列
priority_queue<int> q; //定义一个优先队列,默认为大顶堆
priority_queue<int, vector<int>, less<int> > a; //大顶堆 大的在队首
priority_queue<int, vector<int>, greater<int> > b; //小顶堆 小的在队首
//优先队列参数:
//一:队列中储存的数据类型
//二:堆的数据结构,默认为vecotr<int>,尽量不去做修改
//三:队列中数据的优先级

//结构体优先队列
struct Node{
    int x, y;
};
//重载运算符
bool operator<(Node a, Node b){//返回true时,说明a的优先级低于b
    //x值较大的Node优先级低(x小的Node排在队前)
    //x相等时,y大的优先级低(y小的Node排在队前)
    if( a.x== b.x ) return a.y> b.y;
    return a.x> b.x;
}
priority_queue<Node> que; //定义一个储存Node结构体变量的队列,并且在优先级规则上按照上面重载的运算符规则进行,如果未重载运算符,会直接报错

题目

认领作业后才可以查看作业内容。
状态
正在进行…
题目
7
开始时间
2025-1-4 0:00
截止时间
2026-1-3 23:59
可延期
24 小时