21xrx.com
2025-03-28 22:57:10 Friday
文章检索 我的文章 写文章
C++栈的遍历
2023-06-27 01:53:46 深夜i     23     0
C++ stack 遍历

栈是一种常见的数据结构,它具有后进先出(Last In First Out,LIFO)的特点。在C++中,栈是通过一个叫做stack的容器类来实现的。栈的遍历是指对栈中元素的遍历,常用的方法有两种:使用迭代器或使用循环语句。

使用迭代器遍历栈的方法比较简单。迭代器是一种可遍历容器中元素的对象。对于栈,可以使用stack类中提供的begin()和end()方法获取栈的头和尾迭代器,然后通过遍历这些迭代器来访问栈中的元素。例如,下面的代码展示了如何使用迭代器遍历栈:

#include <iostream>
#include <stack>
using namespace std;
int main()
{
  stack<int> mystack;
  mystack.push(10);
  mystack.push(20);
  mystack.push(30);
  for (stack<int>::iterator it = mystack.begin(); it != mystack.end(); ++it)
  {
    cout << *it << " ";
  }
  cout << endl;
  return 0;
}

上述代码打印出的结果是“30 20 10”,也就是栈中元素30、20和10。

另一种遍历栈的方法是使用循环语句。我们可以使用一个while循环来不断地从栈中取出元素,直到栈为空。代码如下:

while (!mystack.empty())
{
  int val = mystack.top();
  mystack.pop();
  cout << val << " ";
}
cout << endl;

上述代码打印出的结果也是“30 20 10”。

需要注意的是,使用这种方法遍历栈时,必须先判断栈是否为空(使用empty()方法),否则在取出元素时可能会抛出异常。

综上所述,以上两种方法都可以用来遍历C++栈。由于迭代器方法比较简洁,因此在实际开发中比较常用。无论使用哪种方法,掌握遍历C++栈的方法对于理解和使用栈都是非常重要的。

  
  

评论区