cb39a_c++_STL_算法_for_each_transform_比较
cb39a_c++_STL_算法_for_each_transform_比较
for_each() 速度快,不灵活
transform() 速度慢, 非常灵活
STL算法-修改性算法
for_each()
copy()
copy_backward()
transform()
merge()
swap_ranges()
fill()
fill_n()
generate()
generate_n()
replace()
replace_if()
replace_copy()
replace_copy_if()
void square(int &elem)//for_each参数必须是按引用传递,速度快
{
elem = elem*elem;
}
int square2(int elem)//transform不能传引用,传copy,速度慢
{
return elem * elem;
}
int main()
transform(b.begin(), b.end(), b.begin(), square2);
/*cb39a_c++_STL_算法_for_each_transform_比较
for_each() 速度快,不灵活
transform() 速度慢, 非常灵活 STL算法-修改性算法
for_each()
copy()
copy_backward()
transform()
merge()
swap_ranges()
fill()
fill_n() generate()
generate_n()
replace()
replace_if()
replace_copy()
replace_copy_if() void square(int &elem)//for_each参数必须是按引用传递,速度快
{
elem = elem*elem; }
int square2(int elem)//transform不能传引用,传copy,速度慢
{
return elem * elem;
} int main()
transform(b.begin(), b.end(), b.begin(), square2);
*/ #include <iostream>
#include <algorithm>
#include <vector> using namespace std;
void square(int &elem)//for_each参数必须是按引用传递,速度快
{
elem = elem*elem; }
int square2(int elem)//transform不能传引用,传copy,速度慢
{
return elem * elem;
} int main()
{
vector<int> a;
vector<int> b;
for (int i = ; i <= ; ++i)
{
a.push_back(i);
b.push_back(i);
}
cout << "向量a:" << endl;
for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
cout << *iter << ' ';
cout << endl;
cout << "使用for_each" << endl;
for_each(a.begin(), a.end(), square);//调用square函数
for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
cout << *iter << ' ';
cout << endl; cout << "向量b:" << endl;
for (vector<int>::iterator iter = b.begin(); iter != b.end(); ++iter)
cout << *iter << ' ';
cout << endl; cout << "使用transform算法,不能传引用" << endl;
transform(b.begin(), b.end(), b.begin(), square2); for (vector<int>::iterator iter = b.begin(); iter != b.end(); ++iter)
cout << *iter << ' ';
cout << endl; return ;
}
cb39a_c++_STL_算法_for_each_transform_比较的更多相关文章
- cb51a_c++_STL_算法_根据第n个元素排序nth_element
cb51a_c++_STL_算法_根据第n个元素排序nth_elementnth_element(b,n,e),比如最大的5个数排序,或者最小的几个数nth_element(b,n,e,p)对比:pa ...
- cb50a_c++_STL_算法_局部排序partial_sort
cb50a_c++_STL_算法_局部排序partial_sort partial_sort(b,se,e)排序一部分,begin,source end,endcout << " ...
- cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort
cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort sort(b,e) sort(b,e,p) stable_sort(b,e) stable_sort(b,e,p) ...
- cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition
cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition random_shuffle()//重排,随机重排,打乱顺序 partition()分区,把 ...
- cb47a_c++_STL_算法_排列组合next_prev_permutation
cb47a_c++_STL_算法_排列组合next_prev_permutation 使用前必须先排序.必须是 1,2,3或者3,2,1.否者结果不准确.如果, 1,2,4,6.这样数据不会准确nex ...
- cb46a_c++_STL_算法_逆转和旋转reverse_rotate函数advance
cb46a_c++_STL_算法_逆转和旋转reverse_rotateSTL算法--变序性算法reverse() 逆转reverse_copy()一边复制一般逆转rotate()旋转,某个位置开始前 ...
- cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据
cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据unique(b,e),删除连续性的,删除重复的数据,比如如果有两个连续的5,5,则留下一个.uniqu ...
- cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if
cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if remove_copy()//在复制过程中删除一些数据remove_copy_if() 删除性算法: ...
- cb43a_c++_STL_算法_删除_(1)remove_remove_if
cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if() 注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没 ...
随机推荐
- JS中的基本包装类型
想一下:为什么String类型的值可以调用某些方法和访问某些属性呢? 在基本数据类型中有3个特殊的存在:String Number Boolean 这三个基本类型都有自己对应的包装对象.包装对象,其实 ...
- MyBatis的使用增删改查(两种分页查询)
文件目录 写一下每个文件的代码 UserDao.java package cn.zys.dao; import java.io.IOException; import java.util.List; ...
- Ajax用法查询
1)$.get(url, [data], [callback], [type]) 2)$.post(url, [data], [callback], [type]) 其中: url:代表请求的服务器端 ...
- C#网络编程入门之UDP
目录: C#网络编程入门系列包括三篇文章: (一)C#网络编程入门之UDP (二)C#网络编程入门之TCP (三)C#网络编程入门之HTTP 一.概述 UDP和TCP是网络通讯常用的两个传输协议,C# ...
- 深入了解机器学习决策树模型——C4.5算法
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第22篇文章,我们继续决策树的话题. 上一篇文章当中介绍了一种最简单构造决策树的方法--ID3算法,也就是每次选择一个特 ...
- List<T> 的扩展方法
//List<T>.Take(m) //取出 前m行 IEnumerable<Person> takeList = lstPerson.Take(4); foreac ...
- Rocket - tilelink - TLBusWrapper.to
https://mp.weixin.qq.com/s/jSnhBzU5_ayQCg5fWAcx-g 简单介绍TLBusWrapper.to()的实现.主要介绍确定this{...}对应代码的过程. 1 ...
- CSS选择器有哪些?哪些属性可以继承?
CSS选择符: id选择器(#myid). 类选择器(.myclassname). 标签选择器(div, h1, p). 相邻选择器(h1 + p). 子选择器(ul > li). 后代选择器( ...
- Java获取当前时间到凌晨12点剩余秒数
有个获取登陆用户是否每天第一次登陆系统需求,考虑不需要入库操作,就用redis设置key每天凌晨0点删除 /** * 获取当前时间到凌晨12点的秒数 * @return */ public Long ...
- Java实现 LeetCode 482 密钥格式化
482. 密钥格式化 给定一个密钥字符串S,只包含字母,数字以及 '-'(破折号).N 个 '-' 将字符串分成了 N+1 组.给定一个数字 K,重新格式化字符串,除了第一个分组以外,每个分组要包含 ...