能给我一个代码复用性很高的c++代码吗
时间: 2024-04-17 10:26:25 浏览: 11
当涉及到代码复用性很高的C++代码时,一个常见的方法是使用类和模板。以下是一个示例,展示了如何使用模板类来实现一个通用的堆栈数据结构:
```cpp
template <typename T>
class Stack {
private:
std::vector<T> data;
public:
void push(const T& item) {
data.push_back(item);
}
void pop() {
if (!empty()) {
data.pop_back();
}
}
T& top() {
return data.back();
}
bool empty() const {
return data.empty();
}
size_t size() const {
return data.size();
}
};
```
上述代码实现了一个通用的堆栈类 `Stack`,它可以存储任意类型的数据。该类具有 `push`、`pop`、`top`、`empty` 和 `size` 函数,分别用于将元素入栈、出栈、获取栈顶元素、检查栈是否为空以及获取栈的大小。
使用该堆栈类的示例:
```cpp
int main() {
Stack<int> intStack;
intStack.push(10);
intStack.push(20);
intStack.push(30);
while (!intStack.empty()) {
std::cout << intStack.top() << " ";
intStack.pop();
}
std::cout << std::endl;
Stack<std::string> stringStack;
stringStack.push("Hello");
stringStack.push("World");
while (!stringStack.empty()) {
std::cout << stringStack.top() << " ";
stringStack.pop();
}
std::cout << std::endl;
return 0;
}
```
上述示例演示了如何使用 `Stack` 类存储整数和字符串类型的数据,并进行入栈、出栈和访问操作。
通过使用模板类,我们可以轻松地复用这个通用的堆栈实现,以存储不同类型的数据。这提高了代码的复用性和灵活性。