程序员

标准模板库(STL)之 stack 用法【初级】

2020-08-22  本文已影响0人  Aliven888

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。


资料仅供学习交流使用。
作者:Aliven888

1、简述

a. 堆栈是一种容器适配器,专门设计用于在LIFO环境(后进先出)中操作,在LIFO环境中,仅从容器的一端插入和提取元素。
b. 堆栈也是一种容器适配器,它们是使用特定容器类的封装对象作为其基础容器的类,提供了一组特定的成员函数来访问其元素。 元素从特定容器的“后部”被推入/弹出,这被称为堆栈的顶部。

2、接口函数

名称 描述
(constructor) Construct stack (public member function)
empty Test whether container is empty (public member function)
size Return size (public member function)
top Access next element (public member function)
push Insert element (public member function)
emplace Construct and insert element (public member function)
pop Remove top element (public member function)
swap Swap contents (public member function)

3、接口函数使用演示

定义一个变量

    std::stack<int> m_stackValue;

判断堆栈是否为空

功 能:判断堆栈是否为空,如果为空则返回 true, 否则返回 false

    if (!m_stackValue.empty())
    {
        qDebug("m_stackValue is not empty.");
    }

插入元素

功 能:相堆栈中添加元素,顺序添加,先加入的在低地址位置(堆栈底部), m_stackValue = [1, 2, 3, 4]

    m_stackValue.push(1);
    m_stackValue.push(2);
    m_stackValue.push(3);
    m_stackValue.push(4);

获取堆栈元素个数

功 能:获取堆栈中当前元素的个数

    int iSize = m_stackValue.size();
    qDebug("m_stackValue size is = [%d]", iSize);

栈顶元素栈

功 能:获取堆栈顶部的元素,当前获取的值为 4

    int iElement = m_stackValue.top();
    qDebug("m_stackValue iElement is = [%d]", iElement);

移除栈顶元素

功 能:移除堆栈顶部的元素 m_stackValue = [1, 2, 3]

    m_stackValue.pop();

堆栈插入元素

C++ 11 引入的新特性
功 能:交换两个元素类型相同的堆栈 m_stackValue = [6, 7, 8] stackChild = [1, 2, 3, 5]

    m_stackValue.emplace(5);

堆栈元素互换

C++ 11 引入的新特性
功 能:交换两个元素类型相同的堆栈 m_stackValue = [6, 7, 8] stackChild = [1, 2, 3, 5]

    std::stack<int> stackChild;
    stackChild.push(6);
    stackChild.push(7);
    stackChild.push(8);
    m_stackValue.swap(stackChild);

4、注意事项

1、堆栈的特点是后入先出(LIFO)。
2、元素允许重复。

上一篇下一篇

猜你喜欢

热点阅读