c++手写队列

看了很多网上的手写队列,都有些怪怪的,STL又太慢了,特此放一个在这:

#ifndef MYQUEUE
#define MYQUEUE
#include<bits/stdc++.h>
using namespace std;
template<typename T>
class mqueue
{
	T* data;
	int begin;
	int end;
	int length,max_len;
	public:
	mqueue(int Max_len):max_len(Max_len){
		data = new T[Max_len];
		begin = 0;
		end = 0;
		length =0;
	}
	~mqueue(){
		delete data;
	}
	void clear(){
		end=length=begin=0;
		return;
	}
//入队:push
void push(T tmp)
{
	if(length == max_len)
	{
		return;
	}
	if(end==max_len){
		if(begin>0)
			end=0;
		else return;
	};
	
	data[end] = tmp;
	end++;
	
	length++;
	return;
}
//出队:pop
T pop()
{
	if(length == 0)
	{
		return 0;
	}
	begin++;
	length--;
	return data[begin-1];
}
//队头:front
T front()
{
	if(length == 0)
	{
		return 0;
	}
	return data[begin];
}
//对大小:size
int size()
{
	return length; 
}

bool empty(){
	return length==0;
}
};
#endif
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值