自学内容网 自学内容网

【STL】queue的模拟实现

queue的模拟实现,直接调用deque的接口

#pragma once
#include <iostream>
#include <deque>

using std::endl;
using std::cout;
using std::istream;
using std::ostream;

namespace zyy
{
//queue -> 先进先出
template <class T, class Container = std::deque<T>>
class queue
{
public:
void push(const T& x)
{
_con.push_back(x);
}

void pop()
{
_con.pop_front();
}

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

T& top()
{
return _con.front();
}

const T& top() const
{
return _con.front();
}

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

private:
Container _con;
};
};

测试:

#include "queue.h"

using namespace zyy;

void test1()
{
queue<int> q1;
q1.push(1);
q1.push(2);
q1.push(3);
q1.push(4);
q1.push(5);

cout << "q1.top(): " << q1.top() << endl;
cout << "before size: " << q1.size() << endl;
cout << "before empty: " << q1.empty() << endl;
for (int i = 0; i < 5; ++i)
{
cout << q1.top() << " ";
q1.pop();
}
cout << endl;
cout << "after size: " << q1.size() << endl;
cout << "after empty: " << q1.empty() << endl;
}

int main()
{
test1();
return 0;
}

测试结果:
在这里插入图片描述
在这里插入图片描述


原文地址:https://blog.csdn.net/qq_64076540/article/details/142736020

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!