简介
- C++
标准库
C++ 标准库
<stack>
是 C++ 标准库中的头文件,定义了栈容器适配器 std::stack
。
std::stack:
std::stack
是一个基于其他容器(默认使用std::deque
)的封装,提供了栈(LIFO,后进先出)的功能。- 栈是一种具有特定限制的容器,只允许在栈顶进行插入和删除操作。
- 主要特点:
push(const T& val)
: 将元素val
压入栈顶。pop()
: 弹出栈顶元素。top()
: 返回栈顶元素的引用。empty()
: 判断栈是否为空。size()
: 返回栈中元素的数量。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <stack>
int main() {
std::stack<int> myStack;
// 压入元素
myStack.push(1);
myStack.push(2);
myStack.push(3);
// 访问栈顶元素
std::cout << "Top of stack: " << myStack.top() << std::endl;
// 弹出栈顶元素
myStack.pop();
// 输出栈中的元素
while (!myStack.empty()) {
std::cout << myStack.top() << " ";
myStack.pop();
}
std::cout << std::endl;
return 0;
}
以上示例展示了 std::stack
的基本使用方法,包括压入元素、访问栈顶元素、弹出栈顶元素,并且遍历输出了栈中的元素。
C++ 标准库 详解
<stack>
是 C++ 标准库中的头文件,定义了栈容器适配器 std::stack
,它提供了栈(LIFO,后进先出)数据结构的功能。
std::stack:
std::stack
是一个封装了其他容器(默认使用std::deque
)的适配器,实现了栈的功能。- 栈是一种限制性的数据结构,只允许在栈顶进行插入(push)和删除(pop)操作。
- 主要特点:
push(const T& val)
: 将元素val
压入栈顶。pop()
: 弹出栈顶元素。top()
: 返回栈顶元素的引用。empty()
: 判断栈是否为空。size()
: 返回栈中元素的数量。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <stack>
int main() {
std::stack<int> myStack;
// 压入元素
myStack.push(1);
myStack.push(2);
myStack.push(3);
// 访问栈顶元素
std::cout << "Top of stack: " << myStack.top() << std::endl;
// 弹出栈顶元素
myStack.pop();
// 输出栈中的元素
while (!myStack.empty()) {
std::cout << myStack.top() << " ";
myStack.pop();
}
std::cout << std::endl;
return 0;
}
在这个示例中,展示了 std::stack
的基本用法,包括压入元素、访问栈顶元素、弹出栈顶元素,并且遍历输出了栈中的元素。
C++ 标准库 常用的类和函数
在 C++ <stack>
标准库中,主要的类是 std::stack
,而该类主要包含以下常用函数和方法:
类:
- std::stack:
- 栈容器适配器类,基于其他容器(默认使用
std::deque
)封装而成。 - 主要特点:
push(const T& val)
: 将元素val
压入栈顶。pop()
: 弹出栈顶元素。top()
: 返回栈顶元素的引用。empty()
: 判断栈是否为空。size()
: 返回栈中元素的数量。
- 栈容器适配器类,基于其他容器(默认使用
常用函数和方法:
push(const T& val)
: 将元素val
压入栈顶。pop()
: 弹出栈顶元素。top()
: 返回栈顶元素的引用。empty()
: 判断栈是否为空。size()
: 返回栈中元素的数量。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <stack>
int main() {
std::stack<int> myStack;
// 压入元素
myStack.push(1);
myStack.push(2);
myStack.push(3);
// 访问栈顶元素
std::cout << "Top of stack: " << myStack.top() << std::endl;
// 弹出栈顶元素
myStack.pop();
// 输出栈中的元素
while (!myStack.empty()) {
std::cout << myStack.top() << " ";
myStack.pop();
}
std::cout << std::endl;
return 0;
}
这个示例展示了 std::stack
的基本使用方法,包括压入元素、访问栈顶元素、弹出栈顶元素,并且遍历输出了栈中的元素。