当前位置: 首页> 教育> 幼教 > 东莞市专注网站建设品牌_网络营销策划方案简介_长沙县网络营销咨询_app怎么推广

东莞市专注网站建设品牌_网络营销策划方案简介_长沙县网络营销咨询_app怎么推广

时间:2025/7/9 5:18:50来源:https://blog.csdn.net/Alenenen/article/details/143196983 浏览次数:0次
东莞市专注网站建设品牌_网络营销策划方案简介_长沙县网络营销咨询_app怎么推广

queue

queue是C++STL库中的一个适配器,一般使用deque作为数据存储容器。在数据结构中,它是采用队列的设计思路;在算法领域中,适用于解决宽度优先搜索BFS、图论等问题。下面我们就来认识一下queue适配器。

文章目录

  • queue
    • 1. queue的介绍和使用
      • 1.1 queue的介绍
      • 1.2 queue的使用
        • 1.2.1 queue的构造
        • 1.2.2 成员函数
    • 2. queue底层实现
      • 2.1 容器适配器(配接器)
        • 2.1.1 什么是适配器(配接器)
      • 2.2 模拟实现queue

1. queue的介绍和使用

1.1 queue的介绍

queue的文档介绍

queue就是队列,满足先入先出(FIFO)原则

1.2 queue的使用

下面就介绍几种最为常用的接口使用

1.2.1 queue的构造
构造函数(constructor)接口说明
explicit queue (const container_type& ctnr = container_type());将容器中的值拷贝给queue
1.2.2 成员函数
Member functions接口说明
empty判断queue是否为空,是空返回true,非空返回false
size返回queue中元素的个数
front返回队头元素的引用
back返回队尾元素的引用
push 进行入队(尾插)操作
pop进行出队(头删)操作
swap交换两个queue的内容
#include <iostream>
#include <queue>
using namespace std;
int main()
{queue<int> q;q.push(1);q.push(2);q.push(3);q.push(4);cout << q.size() << endl;cout << q.back() << endl;while (!q.empty()){cout << q.front() << " ";q.pop();}cout << endl;  return 0;
}

2. queue底层实现

2.1 容器适配器(配接器)

在这里插入图片描述

根据文档说明 queue 是一种 container adaptor 即适配器

2.1.1 什么是适配器(配接器)

适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另一个接口

C++STL中有三种适配器:

  1. container adapter 两个容器 stack 、queue其实是适配器
  2. iterator adapter
  3. function adapter 改变仿函数的接口者

2.2 模拟实现queue

// queue.h
#pragma once
#include <iostream>
#include <list>
#include <deque>
using namespace std;namespace Alen
{template<class T, class Container = deque<T>>	// 模板指定类型class queue{public:void push(const T& x){_con.push_back(x);}void pop(){_con.pop_front();}const T& front() const{return _con.front();}const T& back() const{return _con.back();}size_t size() const{_con.size();}bool empty() const{return _con.empty();}private:Container _con;};
}

这就是利用适配器的思想,调用已有的容器接口来完成客户期望的接口

感谢你的支持,喜欢本文记得点赞收藏噢。

关键字:东莞市专注网站建设品牌_网络营销策划方案简介_长沙县网络营销咨询_app怎么推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: