STL——c++偷懒妙招

· · 算法·理论

更新日志

iterator

简介

iteratorSTL 中的首要内容,意为“迭代器”,建立一个 iterator 可以遍历一个支持遍历的 STL 容器,它就像一个指针,访问当前的元素时像指针一样在前面加星号就可以了。
特别地,

stack

简介

数据结构——栈,一般方法是用数组模拟,top 表示栈顶,而 stack 可以帮我们实现。
定义方法:

stack <类型名> 变量名;

函数

下面是一些常用函数:

queue

简介

我们在广搜(广度优先搜索,breadth first search,简称 bfs)中需要用数据结构——队列来实现,队列一般用数组模拟, hd 指向队头,tl 指向队尾,而 queue 也可以帮我们实现。
定义方法:

queue <类型名> 变量名;

函数

下面是一些常用函数:

priority_queue

简介

priority_queue 被称为优先队列,可以实现堆结构。
定义格式:

priority_queue <类型名> 变量名;

priority_queue 默认是大根堆,而小根堆的定义格式为:

priority_queue <int, vector<int>, greater<int> >a;

如果用结构体 node 来作为堆的元素,则要重载运算符,例如:

struct node{
    int a, b;
    bool operator<(const node&X)const{
        if (a != X.a)
            return a < X.a;
        return b < X.b;
    }
};

函数

以下是一些常用函数: