收藏670

阅读937

更新时间2025-08-05

C++ 栈

栈(stack)按照特定的顺序(称为后进先出,即 LIFO)存储多个元素。

LIFO 是 "Last In, First Out"(后进先出)的缩写。要理解 LIFO,可以想象一堆煎饼,煎饼是从顶部添加和移除的。因此,当你移除一块煎饼时,它总是你最后添加的那块。在计算机科学和编程中,这种组织元素的方式被称为 LIFO。

与向量不同,栈中的元素不能通过索引号访问。由于元素是从栈顶添加和移除的,因此你只能访问栈顶的元素。

要使用栈,必须包含 头文件:

// 包含栈库
#include 

创建栈

要创建一个栈,可以使用 stack 关键字,并在尖括号 <> 内指定要存储的值的类型,然后是栈的名称,格式为:

stack<类型> 栈名

实例

// 创建一个名为 cars 的字符串栈
stack cars;

注意:栈的类型(本例中为 string)一旦声明后就不能更改。

注意:与向量不同,你不能在声明栈时直接添加元素:

实例

stack cars = {"Volvo", "BMW", "Ford", "Tesla"};

添加元素

要向栈中添加元素,可以使用 .push() 函数:

实例

// 创建一个名为 cars 的字符串栈
stack cars;

// 向栈中添加元素
cars.push("Volvo");
cars.push("BMW");
cars.push("Ford");
cars.push("Tesla");

此时栈的结构如下(记住,最后添加的元素是栈顶元素):

Tesla (栈顶元素)
Ford
BMW
Volvo

访问栈元素

与数组和向量不同,你不能通过索引号来访问栈元素。

在栈中,你只能访问栈顶元素,这可以通过 .top() 函数实现:

实例

// 访问栈顶元素
cout << cars.top();  // 输出 "Tesla"
运行实例 »

点击 "运行实例" 按钮查看在线实例

修改栈顶元素

你也可以使用 .top() 函数来修改栈顶元素的值:

实例

// 修改栈顶元素的值
cars.top() = "Audi";

// 访问栈顶元素
cout << cars.top();  // 现在输出 "Audi" 而非 "Tesla"
运行实例 »

点击 "运行实例" 按钮查看在线实例

移除元素

你可以使用 .pop() 函数从栈中移除一个元素。

这将移除栈中最后添加的元素:

实例

// 创建一个名为 cars 的字符串栈
stack cars;

// 向栈中添加元素
cars.push("Volvo");
cars.push("BMW");
cars.push("Ford");
cars.push("Tesla");

// 移除最后添加的元素(Tesla)
cars.pop();

// 访问栈顶元素(现在是 Ford)
cout << cars.top();
运行实例 »

点击 "运行实例" 按钮查看在线实例

获取栈的大小

要了解栈中有多少个元素,可以使用 .size() 函数:

实例

cout << cars.size();
运行实例 »

点击 "运行实例" 按钮查看在线实例

检查栈是否为空

可以使用 .empty() 函数来判断栈是否为空。

.empty() 函数在栈为空时返回 1(true),在栈包含元素时返回 0(false):

实例

stack cars;
cout << cars.empty(); // 输出 1(栈为空)
运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

stack cars;

cars.push("Volvo");
cars.push("BMW");
cars.push("Ford");
cars.push("Tesla");

cout << cars.empty();  // 输出 0(栈不为空)
运行实例 »

点击 "运行实例" 按钮查看在线实例

栈与队列

栈通常与队列一起提及,队列是另一种类似的数据结构,将在下一页进行介绍。

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号