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