freeCodeCamp/guide/chinese/cplusplus/queue/index.md

197 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: queue
localeTitle: 队列
---
## 队列
`queue`是C ++中最常用的容器之一。容器是一种存储对象集合的数据结构,有些是有序的,有些则不是。所有容器都有一组不同的功能,允许您访问该集合中的对象。
`std::queue`是C ++标准库的一部分(因此前缀为`std::` 允许您以先入先出FIFO顺序存储数据。注意 **队列中的所有对象必须具有相同的数据类型**
存储在队列中的数据类型位于queue关键字旁边的尖括号内。例如如果要存储整数集合则队列将为`std::queue<int> queue_name`
### 队列LIFO解释
`queue`允许我们按特定顺序推送/排队和弹出/出列。 **推送**意味着在队列的前面插入一个对象。 **Pop**意味着从队列末尾拉出“最旧的”对象。所以当你推动它在前面时,当你弹出时,你提取最旧的元素。
![alt text](https://github.com/mohammadaziz313/helloworld/blob/master/Fifo_queue.png "FIFO队列入队和出队示例")
### 队列操作
队列容器支持以下操作:
* 推(入队)
* pop出队
*
* 尺寸
* 面前
* 背部
#### 推
允许您在队列末尾的当前最后一个元素之后插入一个新元素。
```cpp
//Push operation in Queue
#include <iostream> // std::cout
#include <queue> // std::queue
int main ()
{
std::queue<int> q;
q.push(1); //Pushing 1 at front of the queue
q.push(2); //Pushing 2 at front of the queue
return 0;
}
```
#### 面前
允许您访问队列中的下一个元素而不删除它。 下一个元素是队列中“最旧的”元素。
```cpp
//Front operation in Queue
#include <iostream> // std::cout
#include <queue> // std::queue
int main ()
{
std::queue<int> q;
q.push(1); //Pushing 1 at front of the queue
q.push(2); //Pushing 2 at front of the queue
std::cout<<q.front()<<'\n'; //Accessing the front of the queue
std::cout<<q.front()<<'\n'; //Accessing the front of the queue
return 0;
}
```
```
Output:
1
1
```
#### 流行的
允许您删除队列中的下一个元素,有效地将其大小减小一个。 删除的元素是“最旧的”元素。
```cpp
//Pop operation in Queue
#include <iostream> // std::cout
#include <queue> // std::queue
int main ()
{
std::queue<int> q;
q.push(1); //Pushing 1 at front of the queue
q.push(2); //Pushing 2 at front of the queue
std::cout<<q.front()<<'\n'; //Accessing the front of the queue
q.pop(); //Removing the oldest element
std::cout<<q.front()<<'\n'; //Accessing the front of the queue
q.pop(); //Removing the oldest element
return 0;
}
```
```
Output:
1
2
```
#### 尺寸
返回`queue`的元素数。
```cpp
//Size operation in Queue
#include <iostream> // std::cout
#include <queue> // std::queue
int main ()
{
std::queue<int> q;
q.push(1); //Pushing 1 at front of the queue
q.push(2); //Pushing 2 at front of the queue
std::cout<<q.size()<<'\n'; //Accessing the front of the queue
q.pop(); //Removing the oldest element
std::cout<<q.size()<<'\n'; //Accessing the front of the queue
q.pop(); //Removing the oldest element
std::cout<<q.size()<<'\n'; //Accessing the front of the queue
return 0;
}
```
```
Output:
2
1
0
```
#### 空
返回`queue`是否为空,即队列大小是否为零。 如果队列的大小为0则返回`true` ,否则返回`false`
\`\`\`cpp //队列中的空操作
# 包括 // std :: cout
# 包括 // std :: stack
int main { 的std ::队列 q;
q.push1; q.push2;
whileq.empty= true{ 的std :: COUT << q.front<< '\\ n'; q.pop; }
std :: cout <<“Out of loop”<<'\\ n'; 返回0; }
```
Output:
1
2
Out of loop
#### Back
Allows you to access the last element in the queue without removing it.
The next element is the "newest" element in the queue.
```
CPP //在队列中返回操作
# 包括 // std :: cout
# 包括 // std :: queue
int main { std ::队列 q;
q.push1; //在队列前面按1 q.push2; //在队列前面按2
std :: COUT << q.back<< '\\ n'; //访问队列的后面 std :: COUT << q.back<< '\\ n'; //访问队列的后面
返回0; } \`\`\`
```
Output:
2
2
```
### 更多资源:
http://www.cplusplus.com/reference/queue/queue/
### 引文:
图片礼貌:https __ //en.wikipedia.org/wiki/FIFO _computing_ and\_electronics