STL修改算法
2008-12-29 22:35
169 查看
修改算法:
算法 | 用法 | 说明 |
copy | OutIt copy(InIt first,InIt last,OutIt x); | 将[first,last)之间的元素复制到x指定的位置 |
copy_backward | BidIt2 copy_backward(BidIt1 first,BidIt1 last,BidIt2 x); | 将[first,last)之间的元素复制到x指定位置的前面 |
fill | void fill(FwdIt first,FwdIt last,const T& x); | 将[first,last)之间的部分用元素x填充 |
fill_n | void fill_n(OutIt first, Size n,const T& x); | 从first开始向容器中填充n个元素x |
generate | void generate(FwdIt first,FwdIt last, Gen g); | 调用函数g()填充[first,last)之间的元素 |
generate_n | void generate_n(OutIt first,size n, Gen g); | 调用函数g()填充从first开始的n个元素 |
remove | FwdIt remove(FwdIt first,FwdIt last,const T& val); | 从[first,last)中删除元素val,返回新区间中最后一个元素后的位置 |
remove_if | FwdIt remove_if(FwdIt first,FwdIt last, Pred pr); | 从[first,last)中删除所有能使函数pr返回true的元素,返回新区间最后一个元素后的位置 |
remove_copy | OutIt remove_copy(InIt first,InIt last,OutIt x,const T& val); | 从[first,last)中删除元素val,并把其余的元素复制到x开始的区间中,返回被拷贝的最后一个元素的位置 |
remover_copy_if | OutIt remove_copy_if(InIt first,InIt last,OutIt x,Pred pr); | 从[first,last)中删除所有能使函数pr返回true的元素,并把其余元素复制到x开始的空间,返回被拷贝最后一个元素的位置 |
replace | void replace(FwdIt first,FwdIt last,const T& vold,const T& vnew); | 用vnew替换[first,last)中所有值为vold的元素 |
replace_if | void replace_if(FwdIt first,FwdIt last,Pred pr,const T& val); | 用val替换[first,last)中所有能使函数pr返回true的元素 |
replace_copy | OutIt replace_copy(InIt first,InIt last,OutIt x,const T& vold,const T& vnew); | 把[first,last)中的所有元素复制到以x开始的空间中,如果拷贝的元素中存在值为vold的元素,则以vnew替换,返回拷贝到目标容器的最后一个元素的后一个位置 |
replace_copy_if | OutIt replace_copy_if(InIt first,InIt last,OutIt x,Pred pr,const T& val); | 把[first,last)中的所有元素复制到以x开始的空间中,如果拷贝的元素中存在能够使函数pr返回true的元素,则以vnew替换,返回拷贝到目标容器的最后一个元素的后一个位置 |
swap | void swap(Container &c1,Container &c2); | 交换容器c1与c2的元素 |
iter_swap | void iter_swap(FwdIt1 x,FwdIt2 y); | 交换迭代器x,y所指元素的值 |
swap_ranges | FwdIt2 swap_ranges(FwdIt1 first,FwdIt1 last,FwdIt2 x); | 用起始于x的连续元素交换区间[first,last)的所有元素,返回第二个区间的最后一个元素的下一个位置 |
sort | void sort(RanIt first, RanIt last); void sort(RanIt first, RanIt last, Pred pr); | 将区间[first,last)中的元素按升序排序,第二种形式pr用于设定比较函数 |
merge | OutIt merge(InIt1 first1,InIt1 last1,InIt2 first2,InIt2 last2,OutIt x); OutIt merge(InIt1 first1,InIt1 last1,InIt2 first2,InIt2 last2,OutIt x, Pred pr); | 合并两个有序区间[first1,last1)和[first2,last2),并将合并后的元素存储到x开始的容器里,第二种形式pr(elem1,elem2)指定比较规则 |
inplace_merge | void inplace_merge(BidIt first, BidIt middle, BidIt last); void inplace_merge(BidIt first, BidIt middle, BidIt last, Pred pr); | 合并区间[first,middle)和[middle,last),并将合并后的元素存储到first开始的区间,第二种形式pr(elem1,elem2)指定比较规则 |
reverse | void reverse(BidIt first, BidIt last); | 将区间[first,last)的元素顺序倒置 |
reverse_copy | OutIt reverse_copy(BidIt first, BidIt last,OutIt x); | 将区间[first,last)的元素拷贝到x开始的区间,导致拷贝的元素顺序,源区间没有被修改,返回拷贝到目标区间的最后一个元素的下一个位置 |
rotate | void rotate(FwdIt first,FwdIt middle,FwdIt last); | 交换区间[first,middle)和[middle,last)的元素位置 |
rotate_copy | OutIt rotate_copy(FwdIt first,FwdIt middle,FwdIt last,OutIt x); | 将区间[first,last)的元素拷贝到x开始的容器中,拷贝时交换[first,middle)和[middle,last)的位置,源区间不发生修改,返回拷贝到目标区间的最后一个元素的下一位 |
random_shuffle | void random_shuffle(RanIt first, RanIt last); void random_shuffle(RanIt first, RanIt last, Fun& f); | 对区间[first,last)上的元素进行随机排序,f用于指定排序函数 |
transform | OutIt transform(InIt first,InIt last,OutIt x, Unop uop); | 对区间[first,last)上的所有元素执行uop(elem)操作,结果放到以x开始的区间内,返回拷贝到目标端的最后一个元素的下一位 |
transform | OutIt transform(InIt1 first1,InIt1 last1,InIt2 first2,OutIt x, Binop bop); | 对区间[first1,last1)和以first2开始的区间的元素执行二元运算bop(elem1,elem2),结果放到以x开始的区间内,返回拷贝到目标端的最后一个元素的下一位 |
set_itersection | OutIt set_intersection(InIt1 first1,InIt1 last1,InIt2 first2,InIt2 last2,OutIt x); OutIt set_intersection(InIt1 first1,InIt1 last1,InIt2 first2,InIt2 last2,OutIt x, Pred pr); | 求两个区间[first1,last1),[first2,last2)的交集,存储到x开始的容器里,源区间元素没有被修改,pr用于指定操作函数,返回拷贝到目标区间的最后一个元素的下一个位置 |
set_union | OutIt set_union(InIt1 first1,InIt1 last1,InIt2 first2,InIt2 last2,OutIt x); OutIt set_union(InIt1 first1,InIt1 last1,InIt2 first2,InIt2 last2,OutIt x, Pred pr); | 求两个区间[first1,last1),[first2,last2)的并集,存储到x开始的容器里,源区间元素没有修改,pr用于指定操作函数,返回拷贝到目标区间的最后一个元素的下一位 |
set_difference | OutIt set_difference(InIt1 first1,InIt1 last1,InIt2 first2,InIt2 last2,OutIt x); OutIt set_difference(InIt1 first1,InIt1 last1,InIt2 first2,InIt2 last2,OutIt x, Pred pr); | 求两个集合[first1,last1),[first2,last2)的差集,存储到x开始的容器里,源区间元素没有被修改,pr用于指定操作函数,返回拷贝到目标区间的最后一个元素的下一个位置 |
set_symmetric_ difference | OutIt set_symmetric_difference(InIt1 first1,InIt1 last1,InIt2 first2,InIt2 last2,OutIt x); OutIt set_symmetric_difference(InIt1 first1,InIt1 last1,InIt2 first2,InIt2 last2,OutIt x, Pred pr); | 求集合[first1,last1),[first2,last2)的对称差(即(A-B)+(B-A)),存储到x开始的容器里,源区间元素没有被修改,pr用于指定操作函数,返回拷贝到目标区间最后一个元素的下一个位置 |
相关文章推荐
- STL 之非修改算法
- STL 之修改算法
- STL非修改算法
- STL 之修改算法
- STL修改算法
- STL 之修改算法
- STL非修改算法
- STL 之非修改算法
- STL标准算法(一)序列查找算法和序列修改算法
- SGISTL源码探究-stl_alog.h中的二分查找算法
- 【STL】算法 — copy
- STL学习记录(十三):排序类算法及基于排序的算法
- STL 查找vector容器中的指定对象:find()与find_if()算法
- STL算法学习--搜寻算法
- 【C++ STL】算法 <algorithm>中各种算法解析
- 数据算法一个项目中的STL类型的选择和算法实现
- 【算法专题】工欲善其事必先利其器—— C++ STL中vector(向量/不定长数组)的常用方法总结
- STL通用算法: iter_swap,reverse,reverse_copy,advance算法
- 聊聊STL中的算法
- 标准模板库 STL-2 编程题#3:Set(Coursera 程序设计与算法 专项课程3 C++程序设计;执行输入的命令和数据)