stack的基础用法,函数参数,典型应用,实现机制
stack:[stæk]
stack([stæk] )堆栈是一种容器适配器,专门设计用于在LIFO(last-in first-out)环境(后进先出)中操作,在该环境中,仅从容器的一端插入和提取元素。
堆栈被实现为容器适配器,它们是使用特定容器类的封装对象作为其基础容器的类,提供了一组特定的成员函数来访问其元素。 元素从特定容器的“后部”被推入/弹出,这被称为堆栈的顶部。
stack原理示意图
stack理解
stack用法
基础容器可以是任何标准容器类模板或某些其他专门设计的容器类。 容器应支持以下操作:
成员函数 | 功能 |
---|---|
empty | 测试堆栈是否为空 |
size | 返回堆栈大小 |
push | 在堆栈顶部插入元素,调用底层对象成员push_back |
pop | 移除堆栈顶部元素,调用底层容器对象成员pop_back |
top | 返回堆栈顶部的元素即最后插入容器的元素,调用底层容器对象成员back |
emplace | 在堆栈顶部构造和插入元素,调用底层容器对象成员empalce_back |
swap | 用新的内容交换容器适配器(*this)的内容。 |
stack对象的默认构造
stack采用模板类实现,stack对象的默认构造形式:
stack<T> stkT;
stack对象的拷贝构造与赋值
//拷贝构造函数
stack(const stack &stk);
//重载等号操作符
stack& operator=(const stack &stk);
stack<int>stkInt1,stkInt2,stkInt3;
for(int i=0;i<10;i++){
stkInt1.push(i);
}
stkInt2(stkInt1);
stkInt3 = stkInt2;
stack容器实现