"ACM程序设计与STL应用讲稿:常用STL类及应用"

版权申诉
0 下载量 169 浏览量 更新于2024-02-25 收藏 906KB PDF 举报
#include <stack> 3.声明栈对象 stack<int> st; 4.插入元素 st.push(1); 5.删除元素 st.pop(); 6.取栈顶元素 int topElement = st.top(); 华南师大讲稿 华南师大讲稿 应用场景 • 括号匹配 • 表达式求值 • 迷宫求解 华南师大讲稿 队列(queue) 定义:只允许在一端插入,在另一端删除的线性表 队首(front): 允许删除的一端 队尾(back): 允许插入的一端 特点 先进先出(FIFO) 出队 入队 华南师大讲稿 华南师大讲稿 使用方法 1.引用头文件 #include <queue> 2.声明队列对象 queue<int> q; 3.插入元素 q.push(1); 4.删除元素 q.pop(); 5.取队首元素 int frontElement = q.front(); 6.取队尾元素 int backElement = q.back(); 华南师大讲稿 华南师大讲稿 应用场景 • 广度优先搜索(BFS) • 缓冲区管理 • 模拟排队情况 华南师大讲稿 优先队列(priority_queue) 定义:具有优先级顺序的队列,每次出队的是优先级最高的元素 特点 对内部元素进行排序 出队 华南师大讲稿 华南师大讲稿 使用方法 1.引用头文件 #include <queue> 2.声明优先队列对象 priority_queue<int> pq; 3.插入元素 pq.push(1); 4.删除元素 pq.pop(); 5.取队首元素 int topElement = pq.top(); 华南师大讲稿 华南师大讲稿 应用场景 • 任务调度 • 求Top k 问题 • Dijkstra算法 华南师大讲稿 结语 STL中的栈、队列、优先队列是非常常用且实用的数据结构,能够解决很多实际问题。上面我们介绍了它们的定义、特点、使用方法以及应用场景,希望能够帮助大家更好地理解和应用这些数据结构。未来的学习中,希望大家能够多多实践,加深对这些知识点的理解和掌握。