本文共 1823 字,大约阅读时间需要 6 分钟。
队列是一种先进先出的数据结构(FIFO),常用于处理实时任务或批量处理。以下是队列的主要操作方法:
int size = q.size();string front = q.front();q.pop();q.push("元素");true或false。bool empty = q.empty();双端队列(Deque)是一种既可以从前面(front)也可以从后面(back)添加和删除元素的队列。它比普通队列更灵活,适合多个操作场景。
q.push_back("元素");q.push_front("元素");q.pop_back();q.pop_front();int size = q.size();string element = q.at(2);int pos = q.insert(q.end(), "元素");int new_pos = q.erase(q.begin() + 2);q.erase(q.begin(), q.begin() + 3);q.clear();优先队列是一种基于堆的数据结构,能够快速获取最大的元素(大顶堆,默认定义)或最小的元素(小顶堆,需要指定比较器)。
priority_queue
priority_queue q;
#include#include #include using namespace std;int main() { queue Q; Q.push("红"); Q.push("黄"); Q.push("黄"); Q.push("蓝"); cout << Q.front() << " "; // 输出队列头元素:红 Q.pop(); Q.pop(); cout << Q.size() << " "; // 输出队列中的元素数:2 Q.push("绿"); // 如果是栈,输出将是黄,但队列是FIFO cout << Q.front() << " "; // 输出队列头元素:黄 return 0;}
运行结果:
红 黄2黄
以上内容完整涵盖了队列、双端队列和优先队列的核心操作方法,供开发者参考使用。
转载地址:http://letfk.baihongyu.com/