使用C++代码实现栈

简介: 使用C++代码实现栈

以下是一个简单的C++代码示例,演示了如何实现一个基本的栈(Stack)数据结构的原理:

 

```cpp
#include <iostream>
#include <vector>
 
template <typename T>
class Stack {
private:
    std::vector<T> elements;
 
public:
    void push(T element) {
        elements.push_back(element);
    }
 
    void pop() {
        if (!elements.empty()) {
            elements.pop_back();
        } else {
            std::cout << "Stack is empty. Cannot pop." << std::endl;
        }
    }
 
    T top() {
        if (!elements.empty()) {
            return elements.back();
        } else {
            std::cout << "Stack is empty." << std::endl;
            return T();
        }
    }
 
    bool empty() {
        return elements.empty();
    }
 
    int size() {
        return elements.size();
    }
};
 
int main() {
    Stack<int> myStack;
 
    myStack.push(5);
    myStack.push(10);
    myStack.push(15);
 
    std::cout << "Top element: " << myStack.top() << std::endl;
 
    myStack.pop();
    std::cout << "Top element after pop: " << myStack.top() << std::endl;
 
    std::cout << "Stack size: " << myStack.size() << std::endl;
 
    while (!myStack.empty()) {
        myStack.pop();
    }
 
    return 0;
}
```

 

这段代码定义了一个模板类 `Stack<T>`,其中包含了基本的栈操作:`push`(入栈)、`pop`(出栈)、`top`(获取栈顶元素)、`empty`(判断栈是否为空)和 `size`(获取栈的大小)。在 `main` 函数中,展示了如何使用这个栈类进行操作。

 

你可以运行这段代码来了解基本的栈数据结构实现原理。请注意,这只是一个简单的示例,实际应用中可能需要更复杂的功能和错误处理。

相关文章
|
3月前
|
算法框架/工具 C++ Python
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
231 0
|
6天前
|
算法 安全 C++
提高C/C++代码的可读性
提高C/C++代码的可读性
20 4
|
1月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
204 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
1月前
|
算法 C++
|
1月前
|
算法 C++
【算法单调栈】 矩形牛棚(C/C++)
【算法单调栈】 矩形牛棚(C/C++)
|
2月前
|
C++
继续更新完善:C++ 结构体代码转MASM32代码
继续更新完善:C++ 结构体代码转MASM32代码
|
2月前
|
C++ Windows
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
|
2月前
|
C++
2合1,整合C++类(Class)代码转换为MASM32代码的平台
2合1,整合C++类(Class)代码转换为MASM32代码的平台
|
2月前
|
前端开发 C++ Windows
C++生成QML代码与QML里面集成QWidget
这篇文章介绍了如何在C++中生成QML代码,以及如何在QML中集成QWidget,包括使用Qt Widgets嵌入到QML界面中的技术示例。
|
3月前
|
C++
C++代码来计算一个点围绕另一个点旋转45度后的坐标
C++代码来计算一个点围绕另一个点旋转45度后的坐标
76 0