C++STL之stack

1.stack的使用

|-------------|----------------------------------------|
| 函数说明 | 接口说明 |
| stack() | 构造空的栈 |
| empty() | 检测 stack 是否为空 |
| size() | 返回 stack 中元素的个数 |
| top() | 返回栈顶元素的引用 |
| push() | 将元素 val 压入 stack |
| pop() | stack 中尾部的元素弹出 |

2.stack的模拟实现

cpp 复制代码
#include<vector>
namespace abc
{
template<class T>
class stack
{
public:
stack() {
}
void push(const T& x) {
_c.push_back(x);
}
void pop() {
_c.pop_back();
}
T& top() {
return _c.back();
}
const T& top()const {
return _c.back();
}
size_t size()const {
return _c.size();
}
bool empty()const {
return _c.empty();
}
private:
std::vector<T> _c;
};
}

相关推荐
Never_Satisfied2 分钟前
在c#中,Jint的AsString()和ToString()的区别
服务器·开发语言·c#
Never_Satisfied3 分钟前
在c#中,获取文件的大小
java·开发语言·c#
Never_Satisfied11 分钟前
在JavaScript / HTML中,触发某个对象的click事件
开发语言·javascript·html
lly20240613 分钟前
ionic 下拉刷新:实现与优化指南
开发语言
米羊12113 分钟前
Spring 框架漏洞
开发语言·python
键盘鼓手苏苏14 分钟前
Flutter for OpenHarmony:cider 自动化版本管理与变更日志生成器(发布流程标准化的瑞士军刀) 深度解析与鸿蒙适配指南
运维·开发语言·flutter·华为·rust·自动化·harmonyos
IT 行者17 分钟前
ZeroClaw:Rust 驱动的下一代 AI Agent 基础设施
开发语言·人工智能·rust
IT 行者17 分钟前
AI Agent 平台横评:ZeroClaw vs OpenClaw vs Nanobot
开发语言·人工智能·rust
BigNiu21 分钟前
rust里mut 和遮蔽之间的区别
开发语言·rust
许同22 分钟前
JS-WPS 自动化办公(5)多Sheet整合
开发语言·前端·javascript