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
Comments NOTHING