stack - STL快速上手

stack 是数据结构 “栈”

0 - 头文件:stack  命名空间:std

#include <stack>
using namespace std;

1 - 构建一个stack:stack<typename> name 

    typename指的是栈内数据类型,可以是 int, double, 可以是struct, class, 也可以是 stack, string等等。总之是一个数据对象都行。

    name 是你构建的栈的名字,符合变量命名法则就行。

    :构建一个 int 类型的栈, 名字叫做 S。

stack<int> s;

2 使用stack:常用成员函数 ( 假设你创建的stack对象名字叫 S )

    (粉红色的函数为常用函数!大部分情况下这些函数就够用了)

    无参函数:

    empty():如果stack为空,返回True, 反之则返回 False。

    top():返回栈顶元素。

    pop():删除栈顶元素,不返回栈顶元素(一般与top()配合使用:先返top(),再pop(),相当于出栈操作)。

    size():返回stack内数据的个数(相当于数组长度)。

#一般用法:(假如是一个int类型的栈)
while(!S.empty()) {//当栈不为空
    int I = S.top(); S.pop();//元素出栈
    ...//对I的某些操作

    有参函数:

    push(type):把一个数据(type)压入栈顶(相当于入栈)。

        因为对于栈,push等同于push_back,所以stack 没有push_back成员函数!(已经试过了会报错)

    swap(S1):交换S 和 S1 中的内容(S1是另一个stack对象)。

//假设栈内的数据类型是data
class data {
  int a;
  int b;
public:
  data(int x, int y):a(x), b(y) {}
};
//push
data d(1,2);
S.push(d);
//或者
S.push(data(1,2));

  push的优化:emplace函数(点击蓝色字体>emplace<)

猜你喜欢

转载自blog.csdn.net/Kprogram/article/details/82048819
今日推荐