简单数据结构 总结

一、栈(Stack)— stack

特点: 后进先出(LIFO),仅能在栈顶操作。

操作 说明
stack<int> sta; 创建一个存储 int 类型元素的栈,命名为 sta
sta.push(x) x 压入栈
sta.pop() 弹出栈顶元素
sta.top() 返回栈顶元素
sta.empty() 栈是否为空,为空返回 true
sta.size() 当前栈大小

二、队列(Queue)— queue

特点: 先进先出(FIFO),仅能在队头和队尾操作。

操作 说明
queue<int> q; 创建一个存储 int 类型元素的队列,命名为 q
q.push(x) x 压入队列
q.pop() 弹出队头元素
q.front() 返回队头元素
q.back() 返回队尾元素
q.empty() 队列是否为空,为空返回 true
q.size() 当前队列大小

三、双端队列(Deque)— deque

特点: 双端操作,兼容队列与栈的特点。

操作 说明
deque<int> q; 创建一个存储 int 的双端队列,命名为 q
q.push_back(x) 从队尾放入 x
q.push_front(x) 从队头放入 x
q.pop_back() 弹出队尾元素
q.pop_front() 弹出队头元素
q.clear() 清空双端队列,大小归零
q.front() 返回队头元素
q.back() 返回队尾元素
q.size() 当前大小
q.empty() 是否为空

四、向量 / 动态数组(Vector)— vector

特点: 动态大小,自动扩容,支持随机访问,尾部插入删除。

操作 说明
vector<int> v; 定义存储 int 的动态数组 v,初始为空
vector<int> v[100]; 定义 100 个动态数组,v[0] ~ v[99]
v.push_back(x); 添加元素 x 到末尾
v[pos] 访问下标为 pos 的元素
v.clear() 清空整个数组,大小归零
v.resize(100) 把数组大小修改为 100
v.begin() 起始位置迭代器
v.end() 结束位置迭代器
v.empty() 是否为空
v.size() 当前大小
分类: 旧文档 · 更新时间 2026-8-7 16:54:42