queue容器复习

Aki 发布于 2022-12-04 262 次阅读


queue容器就是数据结构队列,底层容器使用了之前写的vector,vector本质上是动态数组,使用vector的话效率比较低,这是由队列原理和vector原理导致的,更好的实现是使用链表。

动态数组vector容器复习 – Akiの分身|プライベート小空間 (elysia13.top)

#pragma once
#ifndef   _QUEUE_H_
#define   _QUEUE_H_
#include"vector.h"


template<class _Ty,class container = vector<_Ty>>
class queue
{
public:

	queue(){}

	queue(const queue& rhs) = delete;

	queue& operator=(const queue& rhs) = delete;

	queue(queue&&rhs)noexcept:_c(move(rhs._c)){}

	queue& operator=(queue&& rhs)noexcept
	{
		_c = move(rhs._c);
		return *this;
	}

	~queue()noexcept{}

	void push(const _Ty& val)
	{
		_c.push_back(val);
	}

	void pop()
	{
		_c.remove(_c.begin());
	}

	size_t size()const
	{
		return _c.size();
	}

	bool empty()const
	{
		return _c.empty();
	}

	_Ty& front()const
	{
		return _c.front();
	}

	void swap(queue&rhs)noexcept
	{
		_c.swap(rhs._c);
	}

private:
	container _c{};
};

#endif