简介

  • 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,而该类主要包含以下常用函数和方法:

类:

  1. 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 的基本使用方法,包括压入元素、访问栈顶元素、弹出栈顶元素,并且遍历输出了栈中的元素。