C++通用工具类:栈

本文最后更新于:2023年9月18日 晚上

标题:C++通用工具类:栈

简介:
栈是一种常用的数据结构,它遵循后进先出(LIFO)的原则。在C++中,我们可以编写通用的工具类来实现栈的基本操作。

正文:

1. 实现一个通用的栈类

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
27
28
29
30
31
#include <iostream>
#include <vector>

template <typename T>
class Stack {
private:
std::vector<T> elements;

public:
void push(const T& element) {
elements.push_back(element);
}

void pop() {
if (!elements.empty()) {
elements.pop_back();
}
}

T top() const {
if (!elements.empty()) {
return elements.back();
} else {
throw std::runtime_error("Stack is empty.");
}
}

bool isEmpty() const {
return elements.empty();
}
};

2. 使用示例

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
int main() {
Stack<int> intStack;
intStack.push(10);
intStack.push(20);
intStack.push(30);

while (!intStack.isEmpty()) {
std::cout << intStack.top() << " ";
intStack.pop();
}

std::cout << std::endl;

Stack<std::string> stringStack;
stringStack.push("Hello");
stringStack.push("World");
stringStack.push("OpenAI");

while (!stringStack.isEmpty()) {
std::cout << stringStack.top() << " ";
stringStack.pop();
}

return 0;
}

结论:

通用工具类可以帮助我们简化许多常见的任务,例如实现常用的数据结构。在C++中,我们可以编写这样的工具类来提高代码的可重用性和可维护性。


C++通用工具类:栈
https://jinbilianshao.github.io/2023/09/18/C-通用工具类:栈/
作者
连思鑫
发布于
2023年9月18日
许可协议