stack 中常见方法
top(): 返回一个栈顶元素的引用, 类型为 T&. 如果栈为空, 返回值未定义.
push(const T& obj): 可以将对象副本压入栈顶. 这是通过调用底层容器的 push_back() 函数完成的.
push(T&& obj): 以移动对象的方式将对象压入栈顶. 这是通过调用底层容器的有右值引用参数的 push_back() 函数完成的.
pop(): 弹出栈顶元素, 直接删除栈顶元素, 并没有返回该值哦.
size(): 返回栈中元素的个数.
empty(): 在栈中没有元素的情况下返回 true.
emplace(): 用传入的参数调用构造函数, 在栈顶生成对象.
swap(stack & other_stack): 将当前栈中的元素和参数中的元素交换. 参数所包含元素的类型必须和当前栈的相同. 对于 stack 对象有一个特例化的全局函数 swap() 可以使用.
stack 简单用法示例
- int main(){
- // 定义一个空栈 a
- stack<int> a;
- for(int i = 1; i <= 3; i++)
- a.push(i);
- cout <<"size of a is" << a.size()<< endl;
- cout << "element of a is:" ;
- for(; a.size()> 0;){
- // cout << a.pop() << " "; pop 直接删除元素并没有返回, 所以这种用法是错误的
- cout << a.top() << " ";
- a.pop();
- }
- cout <<endl;
- cout << "after pop all element in a,the size =" << a.size()<< endl;
- cout << endl;
- return 0;
- }
输出结果如下:
来源: http://www.bubuko.com/infodetail-2984542.html