STL学习笔记----11.STL算法之 (变动性算法)
2012-03-07 16:09
363 查看
一. 变动性算法
二. 复制元素
三. 转换和结合元素
1. 转换元素
2. 将两序列的元素加以结合
四. 互换元素内容
1. 赋于完全相同的数值
1. 替换序列内的元素
copy() | 从第一个元素开始,复制某段区间 |
copy _backward() | 从最后一个元素开始,复制某段区间 |
transform() | 变动(并复制)元素,将两个区间的元素合并 |
merge() | 合并两个区间 |
swap_ranges() | 交换两区间内的元素 |
fill() | 以给定值替换每一个元素 |
fill_n() | 以给定值替换n个元素 |
generate() | 以某项操作的结果替换每一个元素 |
generate_n() | 以某项操作的结果替换n个元素 |
replace() | 将具有某特定值的元素替换为另一个值 |
replace()_if() | 将符合某准则的元素替换为另一个值 |
replace_copy() | 复制整个区间,同时并将具有某特定值的元素替换为另一个值 |
replace_copy_if() | 复制整个区间,同时并将符合某种准则的元素替换为另一个值 |
//将源区间[sourceBeg, sourceEnd]中所有元素复制到以destBeg为起点的目标区间去 //返回目标区间内最后一个被复制元素的下一个位置 //destBeg或destEnd不可处于[sourceBeg, sourceEnd]区间内 OutputIterator copy (InputIterator sourceBeg, InputIterator sourceEnd, OutputIterator destBeg) //将源区间[sourceBeg, sourceEnd]中所有元素复制到以destEnd为终点的目标区间去 BidirectionalIteratorl copy_backward (BidirectionalIterator1 sourceBeg, BidirectionalIterator1 source End, BidirectionalIterator2 destEnd)
三. 转换和结合元素
1. 转换元素
//针对源区间[sourceBeg, sourceEnd)中的每一个元素调用op(elem) //并将结果写到以destBeg起始的目标区间内 //返回目标区间内的"最后一个被转换元素"的下一位置 //sourceBeg与destBeg可以相同 OutputIterator transform (InputIterator sourceBeg, InputIterator sourceEnd, Output Iterator destEeg, UnaryFunc op)
2. 将两序列的元素加以结合
//针对第一个源区间[source1Beg, source1End)以及从source2Beg开始的第二个源区间元素 //调用op(source1Elem, source2Elem),并将结果写入destBeg起始的目标区间内 OutputIterator transform (InputIterator1 source1Beg, InputIterator1 source1End, InputIterator2 source2Beg, OutputIterator destBeg, BinaryFunc op)
四. 互换元素内容
//将区间[beg1, end1)内的元素和从beg2开始的区间内的对应元素互换 //返回第二个区间中最后一个被交换元素的下一位置 ForwardIterator2 swap_ranges (ForwardIterator1 beg1, ForwardIterator1 end1, ForwardIterator2 beg2)五. 赋于新值
1. 赋于完全相同的数值
//将区间[beg, end)内的每一个元素都赋于新值newValue void fill (ForwardIterator beg, ForwardIterator end, const T& newValue) //将从beg开始的前num个元素赋于新值newValue void fill_n (OutputIterator beg, Size num, const T& newValue)2. 赋于新产生的数值
//op()产生新值,并赋值给区间[beg, end)内的每个元素 void generate (ForwardIterator beg, ForwardIterator end, Func op) //op()产生新值,并赋值给以beg起始的区间内的前num个元素 void generate_n (OutputIterator beg, Size num, Func op)六. 替换元素
1. 替换序列内的元素
//将区间[beg, end)内每一个与 oldValue 相等的元素替换为 newValue void replace (Forwardlterator beg, ForwardIterator end, const T& oldValue, const T& newValue) //将区间[beg, end)内每一个令op(elem)为true的元素替换为 newValue void replace_if (ForwardIterator beg, ForwardIterator end, UnaryPredicate op, const T& newValue)2. 复制并替换元素
//将源区间[beg, end)中的元素复制到以 destBeg 为起点的目标区间去 //同时将其中与 oldValue 相等的所有元素替换为 newValue OutputIterator replace_copy (InputIterator sourceBeg, InputIterator sourceEnd, OutputIterator destBeg, const T& oldValue, const T& newValue) //将源区间[beg, end)中的元素复制到以 destBeg 为起点的目标区间去 //同时将其中使p(elem)为true的所有元素替换为 newValue OutputIterator replace_copy_if (InputIterator sourceBeg, InputIterator sourceEnd, OutputIterator destBeg, UnaryPredicate op, const T& newValue)
相关文章推荐
- STL学习笔记----11.STL算法之 (变动性算法)
- STL学习笔记----16.STL算法之 (数值算法)
- STL学习笔记----10.STL算法之 (非变动性算法)
- C++ Primer 学习笔记_40_STL实践与分析(14)--概要、先来看看算法【上】
- C++ Primer 学习笔记_45_STL实践与分析(19)--泛型算法的结构
- STL学习笔记----9.STL算法之 for_each()
- 泛型编程与STL学习笔记之算法
- C++ Primer 学习笔记_41_STL实践与分析(15)--先来看看算法【下一个】
- C++ Primer 学习笔记_46_STL实践与分析(20)--容器特有的算法
- STL学习笔记之 算法(构造堆等)
- C++ Primer 学习笔记_46_STL实践与分析(20)--容器特有的算法
- STL学习笔记----10.STL算法之 (非变动性算法)
- STL学习笔记----13.STL算法之 (变序性算法)
- C++精华(STL)学习笔记之算法
- STL学习笔记--算法
- STL学习笔记之算法--algorithmn
- STL学习笔记----14.STL算法之 (排序算法)
- STL学习笔记--数值算法
- STL学习笔记----16.STL算法之 (数值算法)
- C++精华(STL)学习笔记之算法