栈是数据项序列,只能在序列的一端访问这些数据项,可以把栈想象为数据项的集合,这些项一个堆到另一个上,只能访问最上层的项。栈有从栈顶插入和删除项的操作。push () 操作在栈顶位置增加1项。一旦把新项加入栈,就只能看到和访问这个新项。栈中以前的所有项向下移动,看不到它们。pop() 操作从栈中删除1个元素。top() 操作可以用来显示栈顶的元素
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main()
{
string fistname = "John", lastname = "Doe", fullname;
stack<string> stk;
stk.push(fistname); // 往栈里添加元素 fistname,lastname
stk.push(lastname);
fullname = stk.top(); // 把栈顶(lastname)赋给fullname
cout << fullname <<endl; //输出fullname
stk.pop(); // 删除栈stk栈顶元素 lastname
cout << fullname <<endl; // 即使把栈顶的元素lastname删除了,但fullname里已经赋给了字符串lastname变量,所以,fullname值不变
cout << stk.top() <<endl; // 栈stk中的lastname变量删除,fistname置栈顶,因此输出 fistname对应的变量
stk.top() = "Jack"; // 栈stk栈顶被赋值为"Jack"
cout << stk.top() << endl;; // 所以输出"Jack"
fullname += "," + stk.top(); //字符串中的“+”加号是在字符串的后面添加字符串
cout << fullname <<endl;
stk.pop();
return 0;
}