荷泽网站建设,买链接做网站 利润高吗,电商知识基础,微信app下载安装官方免费下载1.简介 stack #xff0c;栈(堆栈)#xff0c;是一种先进后出(First In Last Out,FILO)的数据结构#xff0c;先插入的数据在栈底#xff0c;后放入的数据在栈顶#xff0c;所有的数据只能从栈顶取出。 在生活中先进后出的例子友很多#xff0c;例如我们在桌子上摞书…1.简介 stack 栈(堆栈)是一种先进后出(First In Last Out,FILO)的数据结构先插入的数据在栈底后放入的数据在栈顶所有的数据只能从栈顶取出。 在生活中先进后出的例子友很多例如我们在桌子上摞书先放的在最下面后放的在最上面。在取书的时候也是先取最后放的最才能取到第一个放的。 栈容器中只有栈顶数据才可以被外界访问因此stack不存在遍历。
2.栈容器使用示例 stack(栈)容器特性先进后出(后进先出) --类似与往袋子中装东西先放进去的在最下面最后放进行的可以先拿出来第一个放进去的 —栈底最后一个放进的—栈顶stack只允许从栈顶取数据stack容器无法对数据进行排序sort但可以判断容器是否为空empty,可以计算元素的个数size 相关函数 stack构造函数 默认构造stack T stk; 拷贝构造stack(const stack p); stack赋值 运算符号重载operator() stack入栈与出栈 入栈(在容器尾部插入元素)emplace() 入栈(在容器尾部插入元素) push() 出栈pop() 查看栈顶元素top() 判断容器是否为空empty() 获取元素个数size() 交换元素swap() 使用示例
#include iostream
#include stack
using namespace std;
void test()
{//创建一个stack容器stackint stk;//入栈stk.push(10);stk.push(20);stk.push(30);stk.push(40);stk.emplace(100);stackintstk3(stk);//拷贝构造cout stk元素个数: stk.size() endl;//查看stk元素while (!stk.empty()){cout stk.top() ;//查看栈顶元素stk.pop();//出栈}cout endl;stackintstk2 stk;//赋值if (stk2.empty()){cout stk2为空 endl;}//入栈stk2.push(111);stk2.push(222);stk2.swap(stk3);//查看stk2元素cout skt2栈内容: endl;while (!stk2.empty()){cout stk2.top() ;//查看栈顶元素stk2.pop();//出栈}cout endl;//查看stk3元素cout skt3栈内容: endl;while (!stk3.empty()){cout stk3.top() ;//查看栈顶元素stk3.pop();//出栈}cout endl;
}
int main()
{test();system(pause);
}3.stack自定义类型示例
#include iostream
#include stack
using namespace std;
class Person
{friend ostream operator(ostream cout,Person p);//友元
public://构造函数Person(int age,string name):age(age),name(name){}private:int age;string name;
};
ostream operator(ostream cout,Person p)
{cout姓名:p.name\t年龄:p.age;return cout;
}void test()
{stackPerson st1;//入栈st1.emplace(18,小王);st1.push(Person(20,小刘));st1.emplace(25,阿水);coutst1成员个数:st1.size()endl;//出栈while(!st1.empty()){cout取栈顶元素:st1.top()endl;st1.pop();//出栈}
}
int main()
{test();
}