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

 

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

相关文章
|
11天前
|
存储 设计模式 C语言
C++中的栈和队列
C++中的栈和队列
15 0
|
2天前
|
安全 算法 程序员
探索C++的魅力:语言特性、编程实践及代码示例
C++是广泛应用的编程语言,尤其在系统级编程、应用开发、游戏和嵌入式系统中广泛使用。其主要特性包括:面向对象编程(封装、继承、多态),泛型编程(通过模板实现代码复用和类型安全),以及丰富的标准库和第三方库。在编程实践中,需注意内存管理、异常处理和性能优化。示例代码展示了面向对象和泛型编程,如类的继承和泛型函数的使用。C++的内存管理和库支持使其在解决复杂问题时具有高效和灵活性。
|
2天前
|
算法 C++
c++算法学习笔记 (15) 单调栈与单调队列
c++算法学习笔记 (15) 单调栈与单调队列
|
2天前
|
算法 C++
c++算法学习笔记 (14) 栈与队列
c++算法学习笔记 (14) 栈与队列
|
2天前
|
存储 算法 编译器
C++性能调优:从代码层面提升程序效率
本文探讨了C++程序性能调优的关键点:选择合适的数据结构和算法,例如用哈希表(如`std::unordered_map`)替换低效的数组或链表;减少不必要的内存分配和释放,利用智能指针和容器如`std::vector`自动管理内存;优化循环和条件语句,例如在循环外存储数组大小;利用编译器优化如`-O2`或`-O3`;以及使用性能分析工具如`gprof`、`callgrind`和`perf`识别并解决性能瓶颈。通过这些方法,可以有效提升C++程序的运行效率。
|
11天前
|
存储 安全 算法
【Linux | C++ 】基于环形队列的多生产者多消费者模型(Linux系统下C++ 代码模拟实现)
【Linux | C++ 】基于环形队列的多生产者多消费者模型(Linux系统下C++ 代码模拟实现)
27 0
|
11天前
|
设计模式 算法 编译器
【C++入门到精通】特殊类的设计 |只能在堆 ( 栈 ) 上创建对象的类 |禁止拷贝和继承的类 [ C++入门 ]
【C++入门到精通】特殊类的设计 |只能在堆 ( 栈 ) 上创建对象的类 |禁止拷贝和继承的类 [ C++入门 ]
14 0
|
11天前
|
算法 Linux 数据安全/隐私保护
【Linux | C++ 】生产者消费者模型(Linux系统下C++ 代码模拟实现)
【Linux | C++ 】生产者消费者模型(Linux系统下C++ 代码模拟实现)
16 0
|
11天前
|
C++
【C++】一文深入浅出带你参透库中的几种 [ 智能指针 ]及其背后实现原理(代码&图示)
【C++】一文深入浅出带你参透库中的几种 [ 智能指针 ]及其背后实现原理(代码&图示)
|
11天前
|
C++ 数据格式
【C++】C++中的【文件IO流】使用指南 [手把手代码演示] & [小白秒懂]
【C++】C++中的【文件IO流】使用指南 [手把手代码演示] & [小白秒懂]
【C++】C++中的【文件IO流】使用指南 [手把手代码演示] & [小白秒懂]