前言:
在之前学习C语言的时候,我们已经学习过栈与队列,并学习过如何使用C语言来实现栈与队列,今天,我们用C++来学习这些知识,让我们探索一下其中的新的知识点
C++中的stack
是一种遵循后进先出原则的容器适配器。它提供了一系列标准的操作,使得用户可以方便地实现栈这种数据结构。
在C++标准库中,
stack
并不直接暴露给用户,而是作为<stack>
头文件中stack
模板类的声明。这个类是std::deque
的封装,因此默认情况下,栈是通过双端队列实现的。但是,用户也可以指定其他的容器作为栈的底层结构,比如std::vector
或std::list
。
栈提供了以下构造函数和成员函数,以便用户可以轻松地创建和使用栈:
成员函数包括:
以下是一个简单的使用C++栈的示例代码:
运行结果:
虽然栈的使用看似简单,但在实际应用中仍然需要注意以下几点:
C++中的queue
是一种遵循先进先出原则的容器适配器。它提供了一系列标准的操作,使得用户可以方便地实现队列这种数据结构。
在C++标准库中,
queue
并不直接暴露给用户,而是作为<queue>
头文件中queue
模板类的声明。这个类是std::deque
的封装,因此默认情况下,队列是通过双端队列实现的。但是,用户也可以指定其他的容器作为队列的底层结构,比如std::list
。
队列提供了以下构造函数和成员函数,以便用户可以轻松地创建和使用队列:
成员函数包括:
以下是一个简单的使用C++队列的示例代码:
运行结果:
虽然队列的使用看似简单,但在实际应用中仍然需要注意以下几点:
1、我们学过如何用C语言来模拟实现栈与队列,那我们如今学习了C++STL部分,请思考我们如何用C++来模拟实现栈与队列 2、上面我们讲到这两个的底层容器都是dequeue,那什么是dequeue呢? 3、我们可不可以用其他容器,如vector、list来模拟实现栈与队列? (这些问题可以先思考一下,我们下篇再讲)
上面就是stack和queue的介绍和使用,由于之前有过C语言的学习,所以在使用上难度不大,难的主要体现在它的底层模拟构造上,这些我们将在下一篇进行讲解
感谢各位大佬观看,创作不易,还请各位大佬一键三连!!!