Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

stack

类模板   <stack>

template <class T, class Container = deque<T> > class stack;

后进先出栈

栈是一种容器适配器类型,专为在后进先出场景中操作而设计,在这种场景中,只从容器的一端插入和提取元素。

栈是作为容器适配器实现的,容器适配器是使用特定容器类的封装对象作为底层容器的类, 提供一组特定的成员函数来访问其元素。元素从特定容器的“back”被pushed/popped,这被称为栈的顶部。

底层容器可以是任何标准容器类模板或其他一些专门设计的容器类。容器应支持以下操作:
empty
size
back
push_back
pop_back
标准容器类vector、deque和list满足这些要求。默认情况下, 如果没有为特定的栈类实例化指定容器类,则使用标准容器deque。

☲  模板参数


T
所包含元素的类型。
别名为成员类型 stack::value_type。
Container
存储元素的内部基础容器对象的类型。
其value_type应为T。
别名为成员类型stack::container_type。

☉  成员类型



C++98:
成员类型 定义 注释
value_type 起始模板参数(T) 元素类型
container_type 第二个模板参数(Container) 基础容器的类型
size_type 无符号整型 通常与size_t相同

C++11:
成员类型 定义 注释
value_type 起始模板参数(T) 元素类型
container_type 第二个模板参数(Container) 基础容器的类型
reference container_type::reference 通常,value_type&
const_reference container_type::const_reference 通常,const value_type&
size_type 无符号整型 通常与size_t相同

☞ 成员函数



(constructor) 构建stack对象(公众成员函数)
empty 测试容器是否为空 (公众成员函数)
size 返回元素个数(公众成员函数)
top 访问下一个元素(公共成员函数)
push 插入元素(公众成员函数)
pop 删除元素(公众成员函数)
emplace 构造并插入元素(公众成员函数)
swap 交换栈内容(公众成员函数)

☣ 非成员函数重载



relational operators (list) 栈的关系运算符(函数)
swap(list) 交换栈内容(公共成员函数)
非成员类特化:
uses_allocator<stack> 为栈使用分配器(类模板)

联系我们 免责声明 关于CandCplus 网站地图