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

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;
}
http://www.xdnf.cn/news/10892.html

相关文章:

  • 互联网 Web 网站
  • flex布局实现固定区域滚动
  • 贝利特价型号SPHSS03 液压伺服模块
  • maven在修改完配置之后新建项目还是不生效的原因
  • 13_pandas可视化_Matplotlib
  • Python库 Pympler 详解:内存分析与追踪工具
  • 父文档检索器引和RAG的context precision性能指标
  • docker-compose 方式搭建禅道(最新版)
  • 对接系统外部服务组件技术方案
  • 数据库包括哪些?关系型数据库是什么意思?
  • Percona Toolkit利器pt-config-diff:MySQL配置差异分析与实战指南
  • 【ROS2】各种相关概念汇总解释
  • 条形进度条
  • 【分层图 最短路 迪氏堆优化最短路】B4165 [BCSP-X 2024 12 月初中组] 贸易|普及+
  • SAP 自动编号的使用
  • 19-项目部署(Linux)
  • 爱普生Epson L3210打印机信息
  • 数据库OCP专业认证培训
  • 嵌入式笔试题+面试题
  • 佰力博科技与您探讨低温介电温谱测试仪的应用领域
  • 安全月报 | 傲盾DDoS攻击防御2025年5月简报
  • Python编程基础(四) | if语句
  • while和do-while循环
  • Office文档图片批量导出工具
  • 30天速通C++(九):深入理解deque
  • CppCon 2014 学习:Anatomy of a Smart Pointer
  • 格恩朗气体涡轮流量计 工业精准流量管理的卓越之选
  • Asp.net core 使用EntityFrame Work
  • 核心机制:流量控制
  • ADC模数转换控制