C++模拟实现queue
C++模拟实现queue
- 1.queue的基本概念
- 2.queue的基本框架
- 3.size()成员函数
- 4.empty()成员函数
- 5.push()成员函数
- 6.pop()成员函数
- 7.front()成员函数
- 8.back()成员函数
- 9.完整代码
🌟🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【C++的学习】
📝📝本篇内容:queue的基本概念;queue的基本框架;size()成员函数;empty()成员函数;push()成员函数;pop()成员函数;front()成员函数;back()成员函数;完整代码
⬆⬆⬆⬆上一篇:C++模拟实现stack
💖💖作者简介:轩情吖,请多多指教(> •̀֊•́ ) ̖́-
1.queue的基本概念
queue是一个容器适配器,它底层是修改其他容器的接口,形成另一种风貌。queue就是我们常说的数据结构队列,它具有先进先出的特性,我们可以只能对它的两端进行操作,是一个双向开口的数据结构,并且queue不允许遍历
2.queue的基本框架
#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include <iostream>
#include <deque>
using namespace std;
namespace lnb
{
//既然是模拟实现,我们默认的Container也可以是list,可以更好的理解,deque是库中默认的
template<class T, class Container = deque<T>>
class stack
{
public:
private:
//修改其他容器的接口,形成另一种风貌:容器适配器
Container _con;
};
}
可以先去看一下list的模拟实现,这样就可以很好的理解后面的内容了
3.size()成员函数
//有效元素个数
size_t size()
{
return _con.size();
}
直接使用其他容器的接口即可
4.empty()成员函数
//判空
bool empty()
{
return _con.empty();
}
5.push()成员函数
//入队
void push(const T& val)
{
_con.push_back(val);
}
6.pop()成员函数
//出队
void pop()
{
_con.pop_front();
}
7.front()成员函数
//队首元素
T& front()
{
return _con.front();
}
//针对const对象
const T& front()const
{
return _con.front();
}
8.back()成员函数
//队尾的元素
T& back()
{
return _con.back();
}
//针对const对象
const T& back()const
{
return _con.back();
}
9.完整代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <deque>
using namespace std;
namespace lnb
{
//既然是模拟实现,我们默认的Container也可以是list,可以更好的理解,deque是库中默认的
template<class T,class Container=deque<T>>
class queue
{
public:
//有效元素个数
size_t size()
{
return _con.size();
}
//判空
bool empty()
{
return _con.empty();
}
//入队
void push(const T& val)
{
_con.push_back(val);
}
//出队
void pop()
{
_con.pop_front();
}
//队首元素
T& front()
{
return _con.front();
}
//针对const对象
const T& front()const
{
return _con.front();
}
//队尾的元素
T& back()
{
return _con.back();
}
//针对const对象
const T& back()const
{
return _con.back();
}
private:
//修改其他容器的接口,形成另一种风貌:容器适配器
Container _con;
};
}
其实queue的模拟实现和stack一样简单,只需要调用别的容器的接口即可,压根没有难度~
🌸🌸C++模拟实现queue的知识大概就讲到这里啦,博主后续会继续更新更多C++的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪