本文概述
- 句法
- 模板参数
- 成员类型
- 功能
句法
template<
class T, class Container = deque<
T>
>
class stack;
此数据结构使用LIFO技术, 其中LIFO代表后进先出。首先插入的元素将在末尾提取, 依此类推。有一个称为“顶部”的元素, 它是位于最高位置的元素。所有插入和删除操作都是在堆栈的顶部元素本身进行的。
应用区域中的堆栈暗示为容器适配器。
容器应支持以下操作列表:
- 空的
- 尺寸
- 背部
- 推回
- pop_back
容器:自变量指定容器的内部对象, 其中包含堆栈的元素。
成员类型下面给出了堆栈成员类型的列表, 并对其进行了简短描述。
成员类型 | 描述 |
---|---|
value_type | 指定了元素类型。 |
container_type | 指定了基础容器类型。 |
size_type | 它指定元素的大小范围。 |
功能 | 描述 |
---|---|
(constructor) | 该函数用于堆栈容器的构造。 |
empty | 该函数用于测试堆栈是否为空。如果堆栈为空, 则该函数返回true, 否则返回false。 |
size | 该函数返回堆栈容器的大小, 该大小是堆栈中存储的元素数量的度量。 |
top | 该函数用于访问堆栈的顶部元素。该元素起着非常重要的作用, 因为所有插入和删除操作都是在顶部元素上执行的。 |
push | 该函数用于在堆栈顶部插入新元素。 |
pop | 该函数用于删除元素, 堆栈中的元素从顶部删除。 |
emplace | 该函数用于在当前顶部元素上方的堆栈中插入新元素。 |
swap | 该功能用于交换两个引用容器的内容。 |
关系运算符 | 非成员函数指定堆栈所需的关系运算符。 |
uses allocator< stack> | 顾名思义, 非成员函数将分配器用于堆栈。 |
#include <
iostream>
#include <
stack>
using namespace std;
void newstack(stack <
int>
ss)
{
stack <
int>
sg = ss;
while (!sg.empty())
{
cout <
<
'\t' <
<
sg.top();
sg.pop();
}
cout <
<
'\n';
}
int main ()
{
stack <
int>
newst;
newst.push(55);
newst.push(44);
newst.push(33);
newst.push(22);
newst.push(11);
cout <
<
"The stack newst is : ";
newstack(newst);
cout <
<
"\n newst.size() : " <
<
newst.size();
cout <
<
"\n newst.top() : " <
<
newst.top();
cout <
<
"\n newst.pop() : ";
newst.pop();
newstack(newst);
return 0;
}
【C++栈stack用法】输出:
The stack newst is :11 22 33 44 55 newst.size() : 5
newst.top() : 11
newst.pop() :22 33 44 55
推荐阅读
- C++字符串用法
- C++信号处理
- C++ STL集合set
- C++队列queue用法
- C++常见程序实例
- C++ int转换为字符串
- C++输出迭代器解析和用法
- C++迭代器用法
- C++前向迭代器用法