使用STL算法需要包含头文件#include<algorithm>,
使用算术算法还需要包含数字头文件#include<numeric>.
find(beg,end,v) | 在迭代器区间内查找等于V的元素,找到返回对应的迭代器,否则返回end |
find_first_of(beg,end,beg2,end2) | 在迭代区间[beg,end)内查找与区间[beg2,end2)内任意元素匹配的元素,然后返回一个迭代器,指向第一个匹配的元素。如果找不到元素,则返回第一个范围的end迭代器 |
find_end(beg,end,beg2,end2) | 与find_first_of类似,区别是查找最后一个匹配的元素 |
find_if(beg,end,func) | 与find功能相同,条件:使函数func返回true |
search(brg,end,beg2,end) | 在迭代区间[beg,end)内查找子序列[beg2,end2) |
search_n(beg,end,n,v) | 在迭代区间[beg,end)内查找连续n个元素v |
lower_bound(beg,end,v) | 查找非递减序列内第一个大于v的元素 |
upper_bound(beg,end,v) | 查找非递减序列内第一个小于v的元素 |
mismatch(beg,end,beg2,end2) | 查找两个序列中第一个不匹配的元素,返回一对iterator,标记第一个不匹配元匹配元素的位置 |
count(beg,end,v) | 统计等于v的元素个数 |
count_if(beg,end,func) | 函数count的_if版本,满足func的元素的个数 |
copy(beg,end,beg2) | 将迭代区间[beg,end)元素复制到以beg2开始的区间 |
---|---|
transform(beg,end,beg2,func) | 功能同copy,每个元素经过函数func处理后复制到beg2开始的区间 |
replace(beg,end,v1,v2) | 区间内等于v1的元素都替换为v2 |
replace_if(beg,end,func,v2) | replace的_if版本 |
fill(beg,end,v) | 区间元素内都写入v |
fill_n(beg,n,v) | 从位置beg开始的n个元素写入v |
replace_copy(beg,end,dest,v1,v2) | |
replace_copy_if(beg,end,dest,func,v2) | |
generate(beg,n,rand) | 从beg开始的n个位置随机填写数据 |
remove(beg,end) | 移除区间[beg,end)内的元素,不是真正的删除 |
unique(beg,end) | 剔除相邻重复的元素,不是真正的删除 |
remove_copy(beg,end,dest) | remove的copy版本,将反转后的序列输出到dest开始的区间 |
remove_copy_if(beg,end,dest,func) |
sort(beg,end) | 区间[beg,end)内元素按字典次序排列 |
stable_sort(beg,end,func) | 同上,不过保存相等元素之间的顺序关系 |
partial_sort(beg,mid,end) | 对区间[beg,end]内的mid-beg个元素进行排序,将最小的mid-beg个元素有序放在序列的前mid-beg的位置上 |
random_shuffle(beg,mid) | 区间内元素随机排序 |
reverse(beg,end) | 将区间内元素反转 |
rotate(beg,mid,end) | 将区间内[beg,mid)和[mid,end)旋转,使mid成为新的起点 |
merge(beg,end,beg2,end2,nbeg) | 将有序区间[beg,end)和[beg2,end2)合并到一个新的序列nbeg中,并对其排序 |
equal(beg,end,beg2,end2) | 判断两个区间的元素是否相等 |
includes(beg,end,beg2,end2) | 判断[beg,end)序列是否被第二个序列[beg2,end2)包含 |
max_element(beg,end) | 返回序列中最大元素的位置 |
min_element(beg,end) | 返回序列中最小元素的位置 |
mismatch(beg,end,beg2,end2) | 查找两个序列中第一个不匹配的元素,返回一对iterator,标记第一个不匹配元素的位置 |
标准库为list容器定义了更精细的操作集合,使它不必只依赖于泛型操作。
lst.merge(lst2) lst.merge(lst2,comp) |
将lst2的元素合并到lst中。这两个list的容器对象都必须排序。lst2中的元素将被删除,合并后,lst2为空分别使用<操作符和comp函数比较 |
lst.remove(val) | 调用lst.erase删除所有等于指定值的元素 |
lst.reverse() | 反向排列lst中的元素 |
lst.sort() | 对lst中的元素排列 |
lst.splice(iter,lst2) | 将lst2的元素移到lst中迭代器iter指向的元素前面;合并后lst2为空,不能是同一个list |
lst.splice(iter,lst2,iter2) | 将lst2中iter2所指向的元素移到lst的iter前面,可以是同一个list |
lst.splice(iter,beg,end) | 将[beg,end)内元素移动到iter前面,如果iter也指向这个区间,则不作任何处理 |
lst.unique() lst.unique(func) |
调用erase删除同一个值的副本,分别用==操作符和函数func比较 |
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/46142.html