如何选择百度网站优化公司,水果网站 模板,赣州做网站什么价格,莆田网站 建设代码随想录二刷 #xff5c;栈与队列 #xff5c;理论基础 栈常用操作 队列常用操作 栈与队列是C标准库中的两个数据结构。 栈
栈先进后出#xff0c;提供 push 和 pop 等接口#xff0c;所有元素必须符合先进后出的原则#xff0c;所以栈不提供走访功能#xff0c;也不… 代码随想录二刷 栈与队列 理论基础 栈常用操作 队列常用操作 栈与队列是C标准库中的两个数据结构。 栈
栈先进后出提供 push 和 pop 等接口所有元素必须符合先进后出的原则所以栈不提供走访功能也不提供迭代器(iterator)。 不像是set 或者map 提供迭代器iterator来遍历所有元素。
栈是以底层容器完成其所有的工作对外提供统一的接口底层容器是可插拔的也就是说我们可以控制使用哪种容器来实现栈的功能。
所以STL中栈往往不被归类为容器而被归类为container adapter容器适配器。
我们常用的SGI STL如果没有指定底层实现的话默认是以deque为缺省情况下栈的底层结构。deque是一个双向队列只要封住一段只开通另一端就可以实现栈的逻辑了。 如图所示栈先进后出。
我们也可以指定vector为栈的底层实现初始化语句如下
std::stackint, std::vectorint third; // 使用vector为底层容器的栈常用操作
stackint st;
int x;// 1. 将 x 压入栈
st.push(x);// 2. 删除栈顶元素
st.pop();// 3. 返回栈顶元素
st.top();// 4. 返回栈中元素的数量
st.size();// 5.检查栈是否为空若为空返回 true否则返回 false
st.empty();队列
队列是先进先出的数据结构同样不允许有遍历行为不提供迭代器, SGI STL中队列一样是以deque为缺省情况下的底部结构。
常用操作
queueint que;
int x;// 1. 在队尾插入一个元素
que.push(x);// 2. 删除队列第一个元素
que.pop();// 3. 返回队列中元素的个数
que.size();// 4. 如果队列为空返回 true否则返回 false
que.empty();// 5. 返回队列中的第一个元素
que.front();// 6. 返回队列中最后一个元素
que.back();也可以指定list 为起底层实现初始化queue的语句如下
std::queueint, std::listint third; // 定义以list为底层容器的队列