stack容器复习

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


stack容器就是数据结构栈,底层容器用到了之前写的vector,本质上是在vector基础上加了一层封装,多了一些接口,基于vector实现的栈效率较高,因为stack的原理和vector的原理匹配度较高。

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

#pragma once
#ifndef  _STACK_H_
#define  _STACK_H_ 
using namespace std;
#include"vector.h"


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

	stack():_c(){}

	stack(const stack& rhs) = delete;

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

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

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

	~stack()noexcept{}

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

	void pop()
	{
		_c.pop_back();
	}

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

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

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

	_Ty& top()const
	{
		return _c.back();
	}

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

private:
	container _c{};
};

#endif