[c++11][stl]stack¶
c++
提供了栈的实现:queue,实现后进先出(last-in first-out, LIFO
)功能
创建栈¶
引入头文件stack
,创建时指定数据类型:
#include <stack>
stack<int> s;
栈功能¶
stack
提供了如下常用功能实现:
- empty():判断栈是否问空,为空返回
true
,不为空返回false
- size():返回栈长度
- top():返回栈顶数据
- push(value_type&& __x):插入数据到栈顶
- pop():移除栈顶数据。注意,返回值为空
c++11
提供了两个新特性:
参考:C++11中emplace的使用:emplace能通过参数构造对象,不需要拷贝或者移动内存,相比push能更好地避免内存的拷贝与移动,使容器插入元素的性能得到进一步提升
实现¶
stack<int> s;
// 栈大小
cout << s.size() << endl;
// 栈是否为空
cout << s.empty() << endl;
s.push(3);
s.push(4);
s.emplace(5);
// 栈顶元素
cout << s.top() << endl;
stack<int> s2;
s2.push(3232);
s2.swap(s);
cout << s.size() << endl;
cout << s.empty() << endl;
cout << s.top() << endl;
}