当前位置: 首页 > wzjs >正文

石家庄网站建设网站建设山东省住房和城乡建设厅网站定额站

石家庄网站建设网站建设,山东省住房和城乡建设厅网站定额站,wordpress计划本,做姓氏图的网站std::transform 是 C STL 中的一个算法,用于对 一个或两个范围(区间) 内的元素应用指定的操作,并将结果存储在输出范围中。它是泛型算法,可以用于 std::vector、std::string、std::array 等容器。 1. 一元运算 tran…

std::transform

是 C++ STL 中的一个算法,用于对 一个或两个范围(区间) 内的元素应用指定的操作,并将结果存储在输出范围中。它是泛型算法,可以用于 std::vector、std::string、std::array 等容器。

1. 一元运算

transform(Iterator inputBegin, Iterator inputEnd,Iterator OutputBegin, unary_operation); 

Iterator inputBegin(输入起始迭代器):要转换的元素起始位置
Iterator inputEnd(输入结束迭代器):要转换的元素结束位置(不包含)
Iterator OutputBegin(输出起始迭代器):转换后的结果存储的位置(可以与输入相同)
unary_operation(操作函数):对每个元素应用的转换函数(可以是 标准库函数、普通函数、Lambda 表达式 或 函数对象)

2. 二元运算

transform(Iterator inputBegin1, Iterator inputEnd1,Iterator inputBegin2, Iterator OutputBegin, binary_operation); 

Iterator inputBegin1(输入起始迭代器1):要转换的元素起始位置1
Iterator inputEnd1(输入结束迭代器1):要转换的元素结束位置(不包含)1
Iterator inputBegin2(输入起始迭代器2):要转换的元素起始位置2
Iterator OutputBegin(输出起始迭代器):转换后的结果存储的位置(可以与输入相同)
binary_operation(操作函数):对每个元素应用的转换函数(可以是 标准库函数、普通函数、Lambda 表达式 或 函数对象)

例1. 使用普通函数
#include <iostream>
#include <algorithm>
#include <string>int main() {std::string str = "Hello, World!";std::transform(str.begin(), str.end(), str.begin(), ::tolower);std::cout << str << std::endl;  // 输出: hello, world!return 0;
}
例2. 使用Lambda 表达式
#include <iostream>
#include <vector>
#include <algorithm>int main() {std::vector<int> nums = {1, 2, 3, 4, 5};std::vector<int> result(nums.size());  // 结果数组// 计算每个元素的平方std::transform(nums.begin(), nums.end(), result.begin(), [](int x) { return x * x; });for (int x : result) std::cout << x << " ";  // 输出: 1 4 9 16 25return 0;
}
例3. 使用普通函数
#include <iostream>
#include <vector>
#include <algorithm>// 自定义函数,将数字翻倍
int doubleNum(int x) {return x * 2;
}int main() {std::vector<int> nums = {1, 2, 3, 4, 5};std::vector<int> result(nums.size());std::transform(nums.begin(), nums.end(), result.begin(), doubleNum);for (int x : result) std::cout << x << " ";  // 输出: 2 4 6 8 10return 0;
}
例4. 使用函数对象
#include <iostream>
#include <vector>
#include <algorithm>// 自定义仿函数,计算立方
struct Cube {int operator()(int x) const {return x * x * x;}
};int main() {std::vector<int> nums = {1, 2, 3, 4, 5};std::vector<int> result(nums.size());std::transform(nums.begin(), nums.end(), result.begin(), Cube());for (int x : result) std::cout << x << " ";  // 输出: 1 8 27 64 125return 0;
}
例5. 双输入

对两个vector内的元素逐个进行操作,并存储到第三个vector中

#include <iostream>
#include <vector>
#include <algorithm>int main() {std::vector<int> a = {1, 2, 3, 4, 5};std::vector<int> b = {10, 20, 30, 40, 50};std::vector<int> result(a.size());// 逐个元素相加std::transform(a.begin(), a.end(), b.begin(), result.begin(), [](int x, int y) { return x + y; });for (int x : result) std::cout << x << " ";  // 输出: 11 22 33 44 55return 0;
}

3. transform 和 back_inserter

back_inserter(result) 让 result 通过 push_back() 自动扩展,而不需要预分配大小。

#include <iostream>
#include <vector>
#include <algorithm>int main() {std::vector<int> nums = {1, 2, 3, 4, 5};std::vector<int> result;std::transform(nums.begin(), nums.end(), std::back_inserter(result), [](int x) { return x * 2; });for (int x : result) std::cout << x << " ";  // 输出: 2 4 6 8 10return 0;
}

4. for_each 和 transform

选择 for_each 还是 transform,取决于是否需要修改数据

// std::for_each
std::for_each(vec.begin(), vec.end(), [](int &x) { x *= 2; });  // 修改原数据
// std::transform
std::transform(vec.begin(), vec.end(), newVec.begin(), [](int x) { return x * 2; });  // 生成新数据
任务用法
打印元素for_each
修改原数据for_each(传 &)
创建新序列transform
两个容器transform(双输入)

文章转载自:

http://tUHxVdNK.kpxzq.cn
http://5KFHC52C.kpxzq.cn
http://011NCIiX.kpxzq.cn
http://j0iFDfjy.kpxzq.cn
http://Jsf9Emdx.kpxzq.cn
http://ecCkPxaU.kpxzq.cn
http://nqWLWn86.kpxzq.cn
http://6wtfiIbW.kpxzq.cn
http://RhC1B7r0.kpxzq.cn
http://yrBfl4be.kpxzq.cn
http://PMEc1XC8.kpxzq.cn
http://zUMJeApX.kpxzq.cn
http://9WOHA3fa.kpxzq.cn
http://7oVlv6VO.kpxzq.cn
http://7hcit4O6.kpxzq.cn
http://7WDaJTtD.kpxzq.cn
http://J0vUgAhD.kpxzq.cn
http://KPXY7cZo.kpxzq.cn
http://G0TvLMk6.kpxzq.cn
http://XBJRyQqq.kpxzq.cn
http://AK2lk2Y8.kpxzq.cn
http://yaVRuHzz.kpxzq.cn
http://OetV09hf.kpxzq.cn
http://7bRDcdv2.kpxzq.cn
http://6js75xNz.kpxzq.cn
http://XjIOMahu.kpxzq.cn
http://3cbHARyJ.kpxzq.cn
http://4Ak7LD7f.kpxzq.cn
http://2UoBAAaF.kpxzq.cn
http://cG3i9AI0.kpxzq.cn
http://www.dtcms.com/wzjs/750704.html

相关文章:

  • 富阳网站建设找哪家济南网络推广公司
  • 一个网站如何工作流程鞍山市残疾人网站开发
  • 专业做网站深圳城乡和建设局网站
  • 网站设计 联系大连市建设网
  • 杭州做网站外包公司潍坊专业网站建设价格
  • 国内空间没备案可以打开网站吗房产信息查询网
  • 记事本做网站怎么改字体wordpress缩略图比例
  • 佛山网站优化步骤网站原型图展示
  • 网页前端模板网站wordpress html5的关系
  • 奉贤网站建设上海站霸泉州网站建设电话
  • 现在标书都从哪个网站下载做a免费网站
  • 如何 做网站挣钱重庆旅游网站建设公司
  • 网站建设硬件设计方案什么视频网站可以做链接
  • 杭州市拱墅区网站建设深圳福田建网站
  • 网站改版案例外贸公司网站模板免费
  • 制作免费的网站辅助色网站
  • 谷歌网站的主要内容wordpress积分充值
  • 社区自助建站网公司注册核名在哪个网站
  • dnf怎么做提卡网站做么自己做一个网站
  • WordPress网站修改淘宝客网站的模板
  • 茂名网站制作网页PHP网站开发都需要学什么
  • 做外贸一般用什么网站好京东网上购物平台
  • 外国电商设计网站有哪些一建报考条件及专业要求
  • 沈阳专门代做网站的wordpress相册插件
  • 中山网站建设托管wordpress 本地运行慢
  • 西安网站关键词优化费用免费网站制作手机软件的app
  • wix做网站的建议手机建设网站的目的
  • 开发网站公司门户网站塘厦企业网站推广公司
  • 张家港电脑网站制作外贸网站优化建设
  • 网站系统说明书wordpress 煎蛋网插件