C++ 队列queue的用法

本文详细介绍了C++标准模板库(STL)中的队列(queue)容器适配器,包括其基本概念、成员函数及使用示例。通过具体代码演示了如何创建、填充队列以及进行队列的基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



转自:http://www.169it.com/article/2718050585107790752.html

 C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。

    C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。

 

C++队列Queue类成员函数如下:

back()返回最后一个元素

empty()如果队列空则返回真

front()返回第一个元素

pop()删除第一个元素

push()在末尾加入一个元素

size()返回队列中元素的个数

 

queue 的基本操作举例如下:

 

 

queue入队,如例:q.push(x); 将x 接到队列的末端。

queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。

访问queue队首元素,如例:q.front(),即最早被压入队列的元素。

访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。

判断queue队列空,如例:q.empty(),当队列空时,返回true。

访问队列中的元素个数,如例:q.size()

 

C++ stl队列queue示例代码1:

 

<strong>
#include 

#include 

#include 

using namespace std;

int main()

{

    int e,n,m;

    queue q1;

    for(int i=0;i<10;i++)

       q1.push(i);

    if(!q1.empty())

    cout<<"dui lie  bu kong\n";

    n=q1.size();

    cout<</strong>

 

C++ stl队列queue示例代码2:

 


#include 

#include 

#include 

/*

调用的时候要有头文件: #include 或 #include +

#include       #include

详细用法:

定义一个queue的变量     queue M

查看是否为空范例        M.empty()    是的话返回1,不是返回0;

从已有元素后面增加元素   M.push()

输出现有元素的个数      M.size()

显示第一个元素          M.front()

显示最后一个元素        M.back()

清除第一个元素          M.pop()

*/

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

queue  myQ;

cout<< "现在 queue 是否 empty? "<< myQ.empty() << endl; 

for(int i =0; i<10 ; i++)

{

myQ.push(i);

}

for(int i=0; i

#include 

#include 

/*

调用的时候要有头文件: #include 或 #include +

#include       #include

详细用法:

定义一个queue的变量     queue M

查看是否为空范例        M.empty()    是的话返回1,不是返回0;

从已有元素后面增加元素   M.push()

输出现有元素的个数      M.size()

显示第一个元素          M.front()

显示最后一个元素        M.back()

清除第一个元素          M.pop()

*/

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

queue  myQ;

cout<< "现在 queue 是否 empty? "<< myQ.empty() << endl; 

for(int i =0; i<10 ; i++)

{

myQ.push(i);

}

for(int i=0; i

 

 

 

### C++ 中 `queue` 的基本用法C++ 标准模板库(STL)中,`queue` 是一种容器适配器,提供了 FIFO(先进先出)的数据结构。为了使用 `queue`,需要包含头文件 `<queue>`。 #### 创建和初始化队列 可以创建不同类型的队列,例如整数队列或字符串队列: ```cpp #include <iostream> #include <queue> int main() { // 定义一个存储整型的队列 std::queue<int> q; // 向队列添加元素 q.push(1); q.push(2); q.push(3); // 输出队首元素并移除它 while (!q.empty()) { std::cout << "Front item is: " << q.front() << '\n'; q.pop(); } return 0; } ``` 上述代码展示了如何定义一个简单的整数队列,并向其中压入三个元素,之后逐个取出这些元素直到队列为空[^1]。 #### 队列的主要操作函数 - **push(element)**:将新元素加入到队尾。 - **pop()**:删除位于队首的元素;注意此方法不返回任何值。 - **front()**:访问队首元素而不将其弹出。 - **back()**:获取当前队尾处最后一个被插入的元素。 - **empty()**:如果队列为零则返回 true,否则 false。 - **size()**:返回队列中的元素数量。 下面是一个更复杂的例子,展示了一个自定义类对象作为队列成员的情况: ```cpp #include <iostream> #include <queue> #include <string> class Person { public: std::string name; int age; Person(std::string n, int a):name(n),age(a){} void displayInfo(){ std::cout<<"Name:"<<this->name<<", Age:"<<this->age<<"\n"; } }; int main() { std::queue<Person*> peopleQueue; // 添加一些Person实例到队列里 peopleQueue.push(new Person("Alice", 30)); peopleQueue.push(new Person("Bob", 25)); // 访问队首元素的信息 (*peopleQueue.front()).displayInfo(); // 移除队首元素 peopleQueue.pop(); // 继续处理下一个元素... if(!peopleQueue.empty()){ (*peopleQueue.front()).displayInfo(); peopleQueue.pop(); } // 清理内存防止泄漏 while (!peopleQueue.empty()){ delete peopleQueue.front(); peopleQueue.pop(); } return 0; } ``` 这段程序说明了怎样利用指针来管理动态分配的对象,并通过队列对其进行管理和释放资源的操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值