stl alogrithm 几个函数的备忘录

这是写给自己的备忘录,记录一下stl <alogrithm>里几个可能会忘掉的函数。

首先是我一直都把algrithm这次拼错了,也读错了,我一直以为是alogrithm。

接下来几点注意事项:

参数里有时用一个Iterator指向操作目标,这是并不意味着函数会自动插入元素。必须预先保证目标容器中有足够多的元素。

所有以equal、less为条件的操作,都有一个对应的用函数对象做谓词的版本。

下面是函数说明。

make_heap:heap的概念是把最大的元素放在顶上(其余的不管),只可以访问顶上的元素。其实感觉更像是树。stl中有专门的容器适配器做heap, stack, queue.

next_permutation:获取下一个全排列。就是N个元素的N!种排列中,当前排列的下一个。stl里给这些排列定义了前后关系可以比较。

nth_element:对元素进行弱排序,只保证第n个元素的位置正确(n之前的小于等于n,之后的大于等于n),至于前后两部分的内部顺序不管。这是比partial_sort更弱的部分排序。

random_shuffle:把元素顺序交换弄乱

set_difference:和其他几个set_开头的函数一道,实现了集合运算。

transform:把源操作范围经过函数变换,拷贝到目标。包括一元和二元变换。

remove:移除原操作范围内等于给定值的元素,将后面的元素前移,返回迭代器指向新的结尾。它不改变对应容器的尺寸,返回值后面的元素仍然保留。若要删除结尾,需要自己erase。例如,在string中删除指定字符:

s.erase(std::remove(s.begin(), s.end(), ch), s.end());





你可能感兴趣的:(stl alogrithm 几个函数的备忘录)