使用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` 函数中,展示了如何使用这个栈类进行操作。

 

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

相关文章
|
30天前
|
自然语言处理 算法 前端开发
C++与Doxygen:精通代码文档化之道
C++与Doxygen:精通代码文档化之道
49 0
|
1月前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
68 0
|
1天前
|
设计模式 编译器 数据安全/隐私保护
C++ 多级继承与多重继承:代码组织与灵活性的平衡
C++的多级和多重继承允许类从多个基类继承,促进代码重用和组织。优点包括代码效率和灵活性,但复杂性、菱形继承问题(导致命名冲突和歧义)以及对基类修改的脆弱性是潜在缺点。建议使用接口继承或组合来避免菱形继承。访问控制规则遵循公有、私有和受保护继承的原则。在使用这些继承形式时,需谨慎权衡优缺点。
12 1
|
3天前
|
设计模式 存储 Java
C++从入门到精通:3.5设计模式——提升代码可维护性与可扩展性的关键
C++从入门到精通:3.5设计模式——提升代码可维护性与可扩展性的关键
|
3天前
|
设计模式 C语言 C++
【C++进阶(六)】STL大法--栈和队列深度剖析&优先级队列&适配器原理
【C++进阶(六)】STL大法--栈和队列深度剖析&优先级队列&适配器原理
|
3天前
|
C++
【C++】在使用代码组装URL时,一定要注意的坑......
【C++】在使用代码组装URL时,一定要注意的坑......
9 0
|
25天前
|
C语言 C++ 容器
C调用C++代码
C调用C++代码
12 1
|
1月前
|
算法 程序员 C语言
C++设计哲学:构建高效和灵活代码的艺术
C++设计哲学:构建高效和灵活代码的艺术
60 1
|
1月前
|
安全 NoSQL 程序员
【年度征文 健壮代码 心得体会】 如何编写健壮的C++代码
【年度征文 健壮代码 心得体会】 如何编写健壮的C++代码
53 0
|
1月前
|
存储 设计模式 算法
【C/C++ 数据结构 线性表】深入理解与实现栈:从基础到应用的全面探索
【C/C++ 数据结构 线性表】深入理解与实现栈:从基础到应用的全面探索
52 0