【c++初阶】stack的介绍和底层逻辑

一.stack的使用

c++里的stack就是栈。实现的也就是后进先出的功能

【c++初阶】stack的介绍和底层逻辑_第1张图片

 这函数就是stack的基本功能,这里只介绍最基本的几个功能

empty:检验栈是否为空,无参数返回,布尔值。

size:返回栈内元素的个数,无参数,返回size_t。

top:取栈顶的元素返回该元素,无参数。

pop:删除栈顶元素,无参数,无返回值。

push:往栈顶添加元素,参数为要入栈的值,无返回值

二.底层逻辑

先从模板参数开始说起

template  > class stack;

首先我们需要提供一个空间适配器来作为底层容器。这个适配器至少需要有尾插,尾删,判空求大小等功能。一般使用vector,list等都可以,如果我们不提供的话,默认使用的是dequeue,dequeue本身世一个比较万能的模板,包含了vector和list两者的基本功能。 

 剩下所有的功能,其实都是直接调用内部封装的适配器的函数即可

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

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

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

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

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

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

 这样一看,其实stack本质上就是把内部的适配器重新封装了一层调用对应的借口罢了

你可能感兴趣的:(c++,开发语言)