C++ STL源码分析—queue和stack

本文探讨了C++ STL中的queue和stack,它们默认由deque实现,因此被视作容器适配器而非独立容器。queue和stack不允许遍历,不提供iterator。同时,用户可以选择其他容器作为底层实现,但需注意调用限制。当尝试调用未在底层容器中定义的函数时,可能导致运行时错误。
摘要由CSDN通过智能技术生成

【侯捷-SL体系结构内核分析-queue和stack探索】

总结

  1. queue和stack底层默认是由deque实现,所有某种程度上queue和stack不被称为容器,而可以被称为容器queue的adapter。
template<class _Ty,
	class _Container = deque<_Ty> >
	class queue
	{	// FIFO queue implemented with a container
	...
	_NODISCARD bool empty() const
		{	// test if queue is empty
		return (c.empty());
		}

	_NODISCARD size_type size() const
		{	// return length of queue
		return (c.size());
		}

	_NODISCARD reference front()
		{	// return first element of mutable queue
		return (c.front());
		}

	_NODISCARD const_reference front() const
		{	// return first element of nonmutable queue
		return (c.front());
		}

	_NODISCARD reference back()
		{	// return last element of mutable queue
		return (c.back());
		}

	_NODISCARD const_reference back() const
		{	// return last element of nonmutable queue
		return (c.back());
		}

	void push(const value_type& _Val)
		{	// insert ele
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值