c++ stack容器适配器的使用
在C++中,std::stack
是一个标准模板库(STL)中的容器适配器,它提供了一种后进先出(LIFO, Last In First Out)的数据结构。std::stack
容器适配器基于底层容器(默认是 std::deque
,但也可以由用户指定)进行封装,只暴露了栈的基本操作接口。
以下是一些常用的 std::stack
操作:
包含头文件
std::stack<int> s; // 创建一个int类型的栈
创建栈
std::stack<int> s; // 创建一个int类型的栈
基本操作
push(element)
: 在栈顶添加元素。pop()
: 移除栈顶元素。top()
: 返回栈顶元素,但不移除它。empty()
: 如果栈为空,则返回true
。size()
: 返回栈中元素的数量。
示例
#include <iostream> #include <stack> int main() { std::stack<int> s; // 向栈中添加元素 s.push(1); s.push(2); s.push(3); // 访问栈顶元素 std::cout << "栈顶元素: " << s.top() << std::endl; // 移除栈顶元素 s.pop(); // 检查栈是否为空 if (s.empty()) { std::cout << "栈为空" << std::endl; } else { std::cout << "栈不为空" << std::endl; } // 获取栈的大小 std::cout << "栈的大小: " << s.size() << std::endl; return 0; }
自定义底层容器
虽然 std::stack
默认使用 std::deque
作为底层容器,但你也可以指定其他容器,例如 std::vector
或 std::list
。这可以通过在 std::stack
的模板参数中指定来实现。但请注意,不是所有的容器都适合作为栈的底层容器,特别是那些不支持在容器中间快速插入或删除元素的容器。
例如,使用 std::vector
作为底层容器的栈:
std::stack<int, std::vector<int>> s;
到此这篇关于c++ stack容器适配器的使用的文章就介绍到这了,更多相关c++ stack容器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Cocos2d-x中使用CCScrollView来实现关卡选择实例
这篇文章主要介绍了Cocos2d-x中使用CCScrollView来实现关卡的选择实例,本文在代码中用大量注释讲解了CCScrollView的使用,需要的朋友可以参考下2014-09-09
最新评论