如何在C++中使用Lambda函数进行累加?

2024-02-26

我正在尝试使用乘法 lambda 来累积向量中的数字。

我的错误是什么?我得到 1 作为结果,而不是 24 (= 123*4)。我的做法如下:

std::function<float(float a, int x)> func;
std::vector<int> m{ 1, 2, 3, 4 }; // <-- Multiply: 1*2*3*4 = 24

float accumulation = 1.0f;
func = [&accumulation, &m](float a, int i) {
    accumulation = a * *m.begin()++;
    return accumulation;
};
accumulation = accumulate(m.cbegin(), m.cend(), accumulation, func);

惯用的方法是:

auto accumulation = std::accumulate(m.begin(), m.end(), 1, std::multiplies{});

Your func做了很多奇怪的事情,我不知道你希望做什么accumulation = a * *m.begin()++;或者你为什么离开i没用过。这更像是这样:

auto func = [](int lhs, int rhs) { return lhs * rhs; };

auto accumulation = std::accumulate(m.begin(), m.end(), 1, func);

或者如果你想这样做floats:

auto func = [](float lhs, float rhs) { return lhs * rhs; };

auto accumulation = accumulate(m.cbegin(), m.cend(), 1.f, func);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在C++中使用Lambda函数进行累加? 的相关文章

  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile

随机推荐

  • 在 R 中使用 strsplit(),忽略括号中的任何内容

    我正在尝试使用strsplit 在 R 中根据逗号将字符串分成几部分 但我不想在括号中拆分任何内容 我认为答案是正则表达式 但我正在努力使代码正确 例如 x lt This is it isn t it well yes gt strspl
  • AngularJS 控制器和“严格使用”

    我最近开始使用 JSHint 它要求我使用 use strict 的函数形式 从那时起 AngularJS 就会抛出错误 错误 参数 webAddressController 不是函数 未定义 当我删除 use strict 的函数形式时
  • 从协议扩展调用选择器

    我正在构建简单的主题引擎 并且希望有一个扩展 可以添加UISwipeGestureRecognizer to UIViewController 这是我的代码 protocol Themeable func themeDidUpdate cu
  • 如何在flutter中读取XML文件?

    我正在尝试读取 flutter 中的 XML 文件 但每次我尝试读取该文件时 它只会引发错误 这是我读取 xml 文件的地方 我的 XML 文件很大 convertXMLtoJSON async File file File assets
  • 如何在 MVVM 中绑定到 PasswordBox

    我遇到了绑定到的问题PasswordBox 这似乎是一个安全风险 但我正在使用 MVVM 模式 所以我希望绕过这个 我在这里发现了一些有趣的代码 有人使用过这个或类似的东西吗 http www wpftutorial net Passwor
  • 为什么ItemTouchHelper.Callback的onChildDraw会在clearView之后被调用

    问题是我想在 RecyclerView 中拖动该项目时对其执行提升 根据文档所述 我应该在以下位置自定义拖动视图的行为ItemTouchHelper Callback onChildDraw https developer android
  • Typescript - 当传入多个键值时缩小函数中的 T[K]

    我正在尝试编写一个钩子 它接受对象的多个键并根据当前应用的过滤器过滤数据 所以 大致如下 interface IFilterable
  • 具有可变行高的 SWT 表:适用于 Linux,但不适用于 Mac/Windows

    问题 我需要一个具有可变行高的 SWT 表 JFace TableViewer 事实上 我在我的开发机器上解决了这个问题 运行 Ubuntu 10 10 不幸的是 这在 Windows 和 Mac 上都不起作用 最初 我以为我没有正确使用这
  • 在一行中多次递增 MATLAB 数组的一个值

    这是一个关于在同一语句中多次递增 MATLAB 数组的一个值而无需使用 for 循环的问题 我将数组设置为 gt gt A 10 20 30 然后运行 gt gt A 1 1 A 1 1 20 3 A 13 20 30 显然 20 被忽略了
  • ASP.NET Web Api 在应该返回 404 时返回 200 OK

    我在 ASP NET Web API 项目中的控制器上有以下操作方法 Route api v2 project projectId stuff HttpGet public IHttpActionResult Get int project
  • Android 的大堆选项适用于升级到 ICS 的旧手机吗?

    我自己也有一台 Galaxy Nexus 而且我知道android largeHeap true 清单选项适用于这款手机 但我想知道它是否适用于正在升级到冰淇淋三明治的旧手机 即三星 Nexus S 我之所以问这个问题 是因为我构建了一个大
  • if(!isset($_POST["user"]) 被忽略并返回未定义索引

    当我输出这段代码时 23 if isset POST user 24 user POST user 25 user2 user 26 pass 0 POST password 27 pass 1 POST password2 28 emai
  • 模块导出是否每次导入时都会创建一个新实例[重复]

    这个问题在这里已经有答案了 src utils http js import axios from axios const axiosInstance axios create baseURL process env VUE APP API
  • 如何在 Gherkin 中实现“if”

    我正在尝试将 Selenium 测试转换为 Gherkin 有没有办法在 Gherkin 中实现 if 语句 示例 假设代码按以下格式编写 我只是写如下描述 请理解双斜杠后面的部分是实际的 Selenium 代码 launch the ap
  • C#:在 C# 4.5 中等待请求完成

    我的 asp net 4 0 应用程序中有一个 http 请求 我希望线程在继续之前等待 HttpClient client new HttpClient HttpResponseMessage responseMsg client Get
  • 活动背景昏暗

    我试图将活动显示为具有暗背景的浮动窗口 并且我使用以下代码来执行此操作 该代码取自 Google I O 2016 项目 protected void setupFloatingWindow int width int height int
  • 从私有 pypiserver 安装 python 包

    我在 nginx 代理后面设置了一个 pypiserver 它使用 htpasswd 进行身份验证 我目前可以上传 sdists 但我不知道如何下载它们 我希望能够在运行时下载它们setup py test并以某种方式使用pip 这可能吗
  • 上次值从负值变为正值

    如何按 PersonID 返回余额字段上次从负值变为正值的日期 在下面的示例数据中 对于 PersonID 1 它发生在 2019 年 7 月 8 日 对于 PersonID 2 它发生在 2019 年 8 月 8 日 值可以多次从负值变为
  • 如何从一个文件中提取多个 JSON 对象?

    我对 Json 文件很陌生 如果我有一个包含多个 json 对象的 json 文件 如下所示 ID 12345 Timestamp 20140101 Usefulness Yes Code event1 A result 1 ID 1A35
  • 如何在C++中使用Lambda函数进行累加?

    我正在尝试使用乘法 lambda 来累积向量中的数字 我的错误是什么 我得到 1 作为结果 而不是 24 123 4 我的做法如下 std function