文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。
资料仅供学习交流使用。
作者: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、元素允许重复。
网友评论