C++标准库之队列

本文介绍了C++中如何利用标准库实现队列数据结构,包括队列的成员函数如.empty(), .size(), .push(), .pop(), .front(), .back()的使用,并通过测试代码展示了其功能,最后给出了测试结果。" 111973879,10295284,BigDecimal操作与精度问题解析,"['Java', '数值计算', '数据类型', '编程']

队列是一种先进先出的数据结构,C++可以直接调用标准库来使用,头文件为

#include<queue>

队列主要包括一下几个成员函数

.empty() 判断队列是否为空,返回true\false
.size() 返回队列大小
.push(X) 向队尾添加元素
.pop() 删除队首元素
.front() 返回队首元素
.back() 返回队尾元素

1.测试代码

    queue<int> que;
    for (int i = 0;i < 10;i++)
        que.push(i);
    cout << "队列que的容量为:" << que.size() << endl;
    cout << "队列que的队首元素为:" << que.front() << endl;
    cout << "队列que的队尾元素为:" << que.back() << endl;
    cout << "队列que是否为空?" << que.empty() << endl;
    for (int i = 0;i < 10;i++)
    {
        cout <<"目前队列长度为" <<que.size() << "  输出队首元素" << que.front() << "  队尾元素" << que.back() << endl;
        que.pop();
    }
    cout << "队列que的容量为:" << que.size() << endl;
    cout << "队列que是否为空?" << que.empty() << endl;
    //que.pop(); 队列已经为空,不能继续删除,否则报错

2.测试结果

队列que的容量为:10
队列que的队首元素为:0
队列que的队尾元素为:9
队列que是否为空?0
目前队列长度为10  输出队首元素0  队尾元素9
目前队列长度为9  输出队首元素1  队尾元素9
目前队列长度为8  输出队首元素2  队尾元素9
目前队列长度为7  输出队首元素3  队尾元素9
目前队列长度为6  输出队首元素4  队尾元素9
目前队列长度为5  输出队首元素5  队尾元素9
目前队列长度为4  输出队首元素6  队尾元素9
目前队列长度为3  输出队首元素7  队尾元素9
目前队列长度为2  输出队首元素8  队尾元素9
目前队列长度为1  输出队首元素9  队尾元素9
队列que的容量为:0
队列que是否为空?1
C++中,标准库中的`std::queue`提供了方便的队列操作,它遵循先进先出(FIFO)原则[^1][^2][^4]。以下是`std::queue`的常见操作方法: #### 1. 包含头文件 使用`std::queue`需要包含`<queue>`头文件。 ```cpp #include <queue> ``` #### 2. 定义队列 可以定义不同数据类型的队列,例如存储整数的队列: ```cpp std::queue<int> q; ``` #### 3. 入队操作(push) 使用`push`方法将元素添加到队列的尾部。 ```cpp q.push(10); q.push(20); ``` #### 4. 出队操作(pop) 使用`pop`方法移除队列头部的元素,但该方法不返回被移除的元素。 ```cpp q.pop(); ``` #### 5. 访问队列头部元素(front) 使用`front`方法访问队列头部的元素。 ```cpp int frontElement = q.front(); ``` #### 6. 访问队列尾部元素(back) 使用`back`方法访问队列尾部的元素。 ```cpp int backElement = q.back(); ``` #### 7. 判断队列是否为空(empty) 使用`empty`方法判断队列是否为空,若为空返回`true`,否则返回`false`。 ```cpp bool isEmpty = q.empty(); ``` #### 8. 获取队列的大小(size) 使用`size`方法获取队列中元素的数量。 ```cpp size_t queueSize = q.size(); ``` 以下是一个完整的示例代码: ```cpp #include <iostream> #include <queue> int main() { std::queue<int> q; // 入队操作 q.push(10); q.push(20); q.push(30); // 访问队列头部元素 std::cout << "Front element: " << q.front() << std::endl; // 访问队列尾部元素 std::cout << "Back element: " << q.back() << std::endl; // 出队操作 q.pop(); // 获取队列的大小 std::cout << "Queue size after pop: " << q.size() << std::endl; // 判断队列是否为空 std::cout << "Is queue empty? " << (q.empty() ? "Yes" : "No") << std::endl; return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值