类模板的使用-栈功能实现
时间: 2024-06-17 08:05:22 浏览: 112
栈的模板实现
类模板是 C++ 中的一个重要特性,它允许我们定义一个通用的类,可以用来创建多个不同类型的对象。栈是一种常见的数据结构,常用于函数调用、表达式求值等场景中。我们可以使用类模板来实现一个通用的栈类。
下面是一个简单的栈类模板示例,可以实现入栈、出栈、查看栈顶元素等基本功能:
```cpp
template <typename T>
class Stack {
public:
Stack() : top_(-1) {}
void Push(const T& value) { data_[++top_] = value; }
void Pop() { --top_; }
T Top() const { return data_[top_]; }
bool Empty() const { return top_ == -1; }
private:
T data_[100];
int top_;
};
```
在这个示例中,我们使用了模板参数 `typename T` 来表示栈中存储的元素类型。`Stack` 类中包含了一些基本的操作,如 `Push`、`Pop`、`Top` 和 `Empty` 等。这些操作都可以针对任意类型的元素进行操作。
如果我们想要创建一个 `int` 类型的栈对象,可以这样做:
```cpp
Stack<int> int_stack;
int_stack.Push(1);
int_stack.Push(2);
int_stack.Pop();
int top_element = int_stack.Top(); // top_element = 1
```
如果我们想要创建一个 `std::string` 类型的栈对象,可以这样做:
```cpp
Stack<std::string> string_stack;
string_stack.Push("hello");
string_stack.Push("world");
string_stack.Pop();
std::string top_element = string_stack.Top(); // top_element = "hello"
```
阅读全文