STL学习笔记(二) 会改变操作对象内容的算法
来源:互联网 发布:淘宝反黑联盟 编辑:程序博客网 时间:2024/05/17 03:45
copy(InputIterator first, InputIterator last, OutputIterator result)
将range1的内容复制到[result, result + (last - first)
copy_backward(BidirectionalIterator1 first, BidirectionalIterator1 last, BidirectionIterator2 result)
将range1的内容复制到[result, result + (last - first),与copy不同的是,复制的顺序是从后往前复制,另外,Iterator必须是BidirectionalIterator
互换元素
swap(Assianable& a, Assignable& b)
swap_ranges(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2)
将两个大小相同的range的内容互换
transform(InputIterator first, InputIterator last, OutputIterator result, UnaryFunction op)
对range中的元素执行函数op,将返回值复制到range[result, result + (last - first))
transform (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, OutputIterator result, BinaryFunction binary_op)
对range1与range2中同一位置的元素执行binary_op,将返回值复制到[result, result + (last - first))
replace(ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value)
将旧值替换成新值
replace_if(ForwardIterator first, ForwardIterator last, Predict pred, const T& new_value)
将符合pred函数的旧值替换成新值
replace_copy(InputIterator first, InputIterator last, OutputIterator result, const T& old_value, const T& new_value)
将range中的值复制到[result, result + (last - first)), 在复制时将old_value替换成new_value
注意原来的range中值不会被改变
replace_copy_if(InputIterator first, InputIterator last, OutputIterator result, Predict pred, const T& new_value)
将old_value替换成pred的版本
fill(ForwardIterator first, ForwardIterator last, const T& value)
将value赋值给range中的每个元素
fill_n(ForwardIterator frist, size n, const T& value)
将value赋值给[first, first + n)中的所有元素,返回值为first + n
generate(ForwardIterator first, ForwardIterator last, Generate gen)
gen为一无参数的函数。函数对[first, last)中的所有i, 执行*i = gen()
generate(ForwardIterator first, size n, Generate gen)
remove(ForwardIterator first, ForwardIterator last, const T& value)
将值value从[first, last)中移除
例如:A[] = {1,2,3,4,5,6,4,8,4,10}
remove(A, A + 10, 4)
则A中的元素变为{1,2,3,5,6,8,10},即被移除后的值的位置被后面的值填充,但末尾的空位仍在(实际上末尾的值没有改变)
remove函数不会改变container的大小
remove(ForwardIterator first, ForwardIterator last, Predict pred)
加了pred的版本
remove_copy(InputIterator first, InputIterator last, OutputIterator result, const T& value)
算法从[first, last)中将元素复制至以result开头的range上,但不会复制与value相等的元素,返回值是[用来安放执行结果]的range的尾端。即如果有n个
元素与value不同,则返回值为result + n
remove_copy_if()
加了pred的版本
unique(FrowardIterator first, ForwardIterator last)
如果range中有连续出现的元素,则会移除该群中第一个之外的所有元素。
同样,空出来的位置会被后面的值填充
unique(ForwardIterator first, ForwardIterator last, BinaryPredict binary_pred)
unique_copy()
- STL学习笔记(二) 会改变操作对象内容的算法
- STL学习笔记(一)不改变操作对象内容的算法
- Generic Programming and the STL笔记3--“会改变操作对象之内容”的算法
- Generic Programming and the STL笔记2--“不改变操作对象之内容”的算法
- 不会改变操作对象内容的STL算法(元素查找,序列查找,统计元素个数,比较区间,找最值)
- STL学习笔记(二):STL对待错误的态度
- 《我的第一本c++书》学习笔记:STL中一些通用算法(二)
- STL学习笔记(二)
- STL学习笔记(二)
- Racket 学习笔记:引入其它的语言包会改变语法
- STL学习笔记(三) 堆的操作
- wcscpy_s会改变后面的内容
- STL学习笔记二(仿函式)
- 学习笔记(二)——STL
- 《STL源码剖析》学习笔记(二)
- STL源码剖析学习笔记(二)
- 在遍历List时,对List里的对象进行remove(),此操作会改变List的大小()
- Android学习笔记----利用ContentObserver监听数据库内容的改变
- 关于table logging 和 archive log 两个参数对归档日志起到的作用
- 【Android 开发教程】ListView的扩展功能
- 装修验收自备“精明眼”居住半年就后悔
- zigbee学习笔记3-通信例程之GenericApp
- 错误-以用户Administrator 的身份连接主机 失败: ERROR: Wrong password
- STL学习笔记(二) 会改变操作对象内容的算法
- extjs fieldset 和 radio
- 使用gethostbyname由域名或主机名得IP地址
- 把python安装到非默认路径
- dree.js教程
- 关于Qt 中update()和repaint()的区别
- 电脑安装Android4.0.4模拟器教程
- VIVI下设置linux_command_line参数
- nfs