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

c++ algorithm

cheatsheet:https://hackingcpp.com

在这里插入图片描述

transform

元素变换

https://blog.csdn.net/qq_44961737/article/details/146011174

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#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;
}

reduce

并行求和
和accumulate区别: https://blog.csdn.net/2401_88063487/article/details/146892173
在这里插入图片描述

#include <algorithm>
#include <execution>
#include <iostream>
#include <vector>
using namespace std;int main()
{std::vector<int> src{ 1,2,3,4,5,6,7,8 };int sum1 = std::reduce(std::execution::par, src.begin(), src.end());cout << "sum1: " << sum1 << endl;return 0;
}

transform_reduce

https://blog.csdn.net/www_dong/article/details/132636826
可以理解为transform+reduce,先变换再相加,返回一个数

#include <algorithm>
#include <execution>
#include <iostream>
#include <vector>
using namespace std;int main()
{std::vector<int> src{ 1,2,3,4,5,6,7,8 };int sum = std::transform_reduce(std::execution::par,src.begin(), src.end(), 0,std::plus<int>{}, [](int x) {return x * 2;});cout << "sum: " << sum << endl;  //  输出 sum: 72return 0;
}

inclusive_scan

计算前缀运算结果

默认加法

在这里插入图片描述

使用乘法运算函数对象std::multiplies,计算元素累乘

在这里插入图片描述

其他仿函数

https://www.cnblogs.com/cyssmile/p/12790854.html
less greater greater_equal less_equal not_equal_to
logical_and logical_or logical_not
minus plus divide modulus negate

自定义函数

#include <iostream>
#include <vector>
#include <algorithm> // 包含 std::transformint doubleValue(int elem) {return elem * 2;
}int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};std::vector<int> result(numbers.size());std::transform(numbers.begin(), numbers.end(), result.begin(), doubleValue);return 0;
}

相关文章:

  • mac下通过anaconda安装Python
  • 机器学习——主成分分析PCA
  • Oracle 用户/权限/角色管理
  • 51c大模型~合集134
  • 二分查找的边界艺术:LeetCode 34 题深度解析
  • Dify-5:Web 前端架构
  • 登录的写法,routerHook具体配置,流程
  • 算法/机理模型演示平台搭建(二)——算法接口部署(FastApi)
  • 帝可得 - 策略管理
  • uniapp开发使用vue3组合式api,实现从vue模块中自动导入
  • 简单transformer运用
  • Delphi 设置文件 永久只读
  • 数据安全中心是什么?如何做好数据安全管理?
  • Foundation Models for Generalist Geospatial Artificial Intelligence论文阅读
  • windows修改跃点数调整网络优先级
  • DiskGenius专业版v6.0.1.1645:分区管理、数据恢复、备份还原,一应俱全!
  • Win11系统不推送24H2/西数SSD无法安装24H2 - 解决方案
  • MyBatis 执行 SQL 报错:String 无法转换为 Long 的排查与解决实录
  • Vue3中Axios的使用-附完整代码
  • 从测试角度看待CI/CD,敏捷开发
  • 网站被挂马做js跳转/网站seo哪家做的好
  • 上海市建设和城乡建设委员会网站/海外网站建站
  • 淄博外贸网站制作/自动app优化下载
  • 可以做任务的网站/营销活动策划方案
  • 有哪些做兼职的设计网站有哪些工作/西地那非片说明书
  • 网站建设英文怎么说/seo网站优化排名