C++中的Stack和Dequeue解析
Stack
Stack概述
栈的英文为 stack,它是一种数据结构,特点是后进先出(last in first out,LIFO)。栈有两个基本操作,一个是进栈(也叫压栈,push),一个是出栈(也叫弹栈,pop)。进栈操作会让数据从栈顶进入栈中,而出栈操作会让数据从栈顶弹出。
C++中提供了 stack 模板类,可以非常便捷地实现栈的功能,实现了一些基本操作,如push(元素入栈)、top(返回栈顶元素)、pop(元素出栈)、empty(判断栈是否为空)、size(返回栈中元素的个数)等等。
示例
#include <stack>
#include <iostream>
using namespace std;
int main()
{
stack<int> s;
// 向栈中添加元素
s.push(1);
s.push(2);
s.push(3);
// 栈的大小
cout << "Stack Size: " << s.size() << endl;
// 输出栈中的元素
while (!s.empty())
{
cout << s.top() << " ";
s.pop();
}
return 0;
}
输出结果:
Stack Size: 3
3 2 1
Dequeue
Dequeue概述
deque 是一个双端队列(double-ended queue),是一种具有队列和栈的性质的数据结构。它允许对队列头和队列尾进行插入和删除,支持从队列头和队列尾进行元素的访问。
C++中也提供了deque 模板类,常用的函数有:push_back、pop_back、push_front、pop_front、front、back、size等等。
示例
#include <deque>
#include <iostream>
using namespace std;
int main()
{
deque<int> dq;
//往队列里插入数据
dq.push_front(0);
dq.push_back(1);
//队列的大小
cout << "Deque Size: " << dq.size() << endl;
//队头/队尾元素
cout << "Deque Front: " << dq.front() << endl;
cout << "Deque Back: " << dq.back() << endl;
//弹出队头/队尾元素
dq.pop_front();
dq.pop_back();
//输出队列中的元素
for (auto x : dq)
{
cout << x << " ";
}
return 0;
}
输出结果:
Deque Size: 2
Deque Front: 0
Deque Back: 1
总结
通过对 Stack 和 Dequeue 的讲解,我们可以看出,这两种数据结构可以非常方便地实现栈和队列的功能,可以方便地存储和访问数据。同时,在实际编程中,也非常常用,是我们不可忽视的一部分内容。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++中的stack和dequeue解析 - Python技术站