21xrx.com
2024-12-22 23:12:16 Sunday
登录
文章检索 我的文章 写文章
C++中如何定义栈
2023-07-05 10:31:10 深夜i     --     --
定义 C++

在C++语言中,栈是一种非常常见的数据结构类型,它是一种后进先出(Last In First Out,LIFO)的数据结构,即最后进入栈中的元素会首先被取出来。栈主要用于存储一些临时的数据,它可以在函数内部起到传递值和存储变量的作用。

在C++中,我们可以通过使用STL标准库来定义一个栈,STL中的栈模板类可以在程序中高效地实现栈的操作。下面是一些示例代码:

1. 定义一个栈的模板类


#include <stack>

using namespace std;

stack<int> s;  //定义一个整型的栈

2. 声明一个栈,并进行一些基本操作


#include <stack>

using namespace std;

int main()

{

  stack<int> s;    //定义一个整型的栈

  s.push(1);      //往栈里面压入一个元素

  s.push(2);      //往栈里面压入一个元素

  s.push(3);      //往栈里面压入一个元素

  int topElement = s.top();  //获取栈顶元素

  s.pop();           //弹出栈顶元素

  int size = s.size();     //获取栈的大小

  while(!s.empty())       //循环弹出栈中的元素

  {

    int elem = s.top();  

    s.pop();

  }

  return 0;

}

3. 自定义栈模板类


template<typename T>

class MyStack

{

public:

  void push(T element) { m_data.push_back(element); }

  void pop() { m_data.pop_back(); }

  T top() const { return m_data.back(); }

  bool empty() const { return m_data.empty(); }

  int size() const { return m_data.size(); }

private:

  vector<T> m_data;

};

通过使用STL标准库,可以方便地实现栈的定义和操作,同时也可以自定义一个栈模板类来满足自己的需求。但是需要注意的是,如果使用STL中的栈模板类,需要使用头文件"stack",而自定义栈模板类需要使用STL中的"vector"头文件来支持其底层实现。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复