stl alogrithm 几个函数的备忘录
2015-01-10 19:58
239 查看
这是写给自己的备忘录,记录一下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());
首先是我一直都把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中容器的几个容易混淆的成员函数-size, capacity, resize, reserve
- STL 几个函数的用法
- 常用的几个STL::string的扩展函数
- STL中容器的几个容易混淆的成员函数-size, capacity, resize, reserve
- STL中容器的几个容易混淆的成员函数-size, capacity, resize, reserve
- 几个ASP+操作日期的函数
- MFC中几个有用的字符串操作函数
- 几个重要的函数
- 显示日期格式的几个函数
- 几个重要的函数:
- JavaScript几个函数 - split()、join()、substring()和indexOf()
- 关于日期的几个自定义函数
- TrayIcon和几个消息处理函数的问题
- STL中的函数对象(Funciont Objects)
- 几个常用函数
- 关于日期天数计算的几个函数!
- VB几个有用的函数
- php中几个字符处理函数的说明
- string的几个函数
- 几个常用的小函数2