std: : deque头文件
时间: 2024-05-17 18:10:00 浏览: 15
`std::deque`(双端队列)是C++ STL中的一个容器,它支持在两端高效地进行插入和删除操作,同时也支持随机访问。`std::deque`的实现方式是通过一块连续的内存区域来存储数据块,每个数据块内部是一个定长的数组,不同的数据块之间通过指针进行连接。这样既保证了在两端的高效操作,也避免了vector频繁扩容和移动元素的问题。`std::deque`提供了一些成员函数,例如push_front, push_back, pop_front, pop_back, at等函数,可以方便地对双端队列进行操作。
相关问题
std::queue
std::queue是C++ STL中的一个容器,它是一个先进先出(FIFO)的队列。它的实现基于deque(双端队列),可以在队列的末尾添加元素,从队列的前端删除元素。std::queue提供了一些常用的方法,例如push()用于在队列的末尾添加元素,front()用于返回队列中第一个元素的引用,size()用于返回队列中元素的个数。在使用std::queue之前,需要包含头文件<queue>。下面是一个简单的std::queue的示例代码:
```
#include <iostream>
#include <queue>
using namespace std;
int main() {
std::queue<int> numbers;
numbers.push(1);
numbers.push(2);
numbers.push(3);
std::cout << "queue size: " << numbers.size() << std::endl;
std::cout << "queue number: " << numbers.front() << std::endl;
return 0;
}
```
输出结果为:
```
queue size: 3
queue number: 1
```
std::queue的用法
`std::queue` 是 C++ STL 中的一个容器,它是一个先进先出(FIFO)的队列,支持在队尾插入元素,在队头删除元素,并且可以访问队头和队尾元素。`std::queue` 的实现基于其他 STL 容器,如 `std::deque` 或 `std::list`。
以下是 `std::queue` 的常用方法和用法:
### 头文件
使用 `std::queue` 前需要包含 `<queue>` 头文件。
```c++
#include <queue>
```
### 定义队列
定义一个 `std::queue` 对象需要指定元素类型。例如,定义一个整型队列:
```c++
std::queue<int> myQueue;
```
### 插入元素
在队列尾部插入元素,使用 `push()` 方法:
```c++
myQueue.push(1);
myQueue.push(2);
myQueue.push(3);
```
### 访问队头和队尾元素
访问队头元素,使用 `front()` 方法:
```c++
std::cout << "队头元素为:" << myQueue.front() << std::endl;
```
访问队尾元素,使用 `back()` 方法:
```c++
std::cout << "队尾元素为:" << myQueue.back() << std::endl;
```
### 删除元素
删除队头元素,使用 `pop()` 方法:
```c++
myQueue.pop();
```
### 判断队列是否为空
使用 `empty()` 方法判断队列是否为空:
```c++
if (myQueue.empty()) {
std::cout << "队列为空" << std::endl;
}
```
完整示例代码如下:
```c++
#include <iostream>
#include <queue>
int main() {
// 定义整型队列
std::queue<int> myQueue;
// 插入元素
myQueue.push(1);
myQueue.push(2);
myQueue.push(3);
// 访问队头和队尾元素
std::cout << "队头元素为:" << myQueue.front() << std::endl;
std::cout << "队尾元素为:" << myQueue.back() << std::endl;
// 删除队头元素
myQueue.pop();
// 判断队列是否为空
if (myQueue.empty()) {
std::cout << "队列为空" << std::endl;
}
return 0;
}
```
运行结果为:
```
队头元素为:1
队尾元素为:3
```