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更弱的部分排序。

partial_sort:部分排序,相当于topn

random_shuffle:把元素顺序交换弄乱

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

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

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

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





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值