使用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++代码实现
193 0
|
29天前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
133 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
30天前
|
算法 C++
|
30天前
|
算法 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++面向对象编程,解锁软件开发新境界!从混乱到有序,你的代码也能成为高效能战士!
【8月更文挑战第22天】C++凭借其强大的面向对象编程(OOP)能力,在构建复杂软件系统时不可或缺。OOP通过封装数据和操作这些数据的方法于对象中,提升了代码的模块化、重用性和可扩展性。非OOP方式(过程化编程)下,数据与处理逻辑分离,导致维护困难。而OOP将学生信息及其操作整合到`Student`类中,增强代码的可读性和可维护性。通过示例对比,可以看出OOP使C++代码结构更清晰,特别是在大型项目中,能有效提高开发效率和软件质量。
32 1
|
3月前
|
C++
C++代码来计算一个点围绕另一个点旋转45度后的坐标
C++代码来计算一个点围绕另一个点旋转45度后的坐标
65 0