c++之stack(栈)与queue(队列)的使用与简单实现

说明

栈的简单实现很简单,但是有一个强制要求,传过来的类模版中,必须包含尾插头删等操作
队列同理
他们两个叫空间适配器,不同于其他stl的类

stack与 queue

自身的拷贝构造是调用传过来的类,析构同理,什么都是用别人的,自己只是一个封装效果一样,封装别人
类模版:
这里的conatiner是要传过来的类

template<class T,class Container= deque <T>>
class stack
{private:
	Container _con;};

template<class T, class Container = deque <T>>
class queue
{private:
	Container _con;};

push

使用:

int main()
{
	stack<int> d;
	queue<int> s;
	d.push(1);
	d.push(2);
	d.push(3);
	d.push(4);
	d.push(5);
	s.push(1);
	s.push(2);
	s.push(3);
	s.push(4);
	s.push(5);
	while (!d.empty())
	{
		cout << d.top()<<" ";
		d.pop();
	}
	cout << endl;
	while (!s.empty())
	{
		cout << s.front() << " ";
		s.pop();
	}
	return 0;
}

简单实现:
相当于富二代 用别人的 自己没有

void push(const T& x)
{
	_con.push_back(x);
}

pop()删除

实现:

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

top()查头

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

queue的back()查尾

const T& back()
{
	return _con.back();
}

size()长度

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

empty()判空

bool empty()
{
	_con.empty();
}
  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dabai__a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值