STL容器如何折叠?

2024-01-01

我需要 Haskell 的类似物foldl功能可折叠任何 STL 容器。预期签名如下:

template Iterator, FoldingFunction, Result
Result foldl(
  Iterator begin, 
  Iterator end, 
  FoldingFunction f, 
  Result initValue);

标准STL没有这样的功能。做Boost有什么?

我知道它实现起来非常简单,但我想知道是否有任何现成的标准化实现。

还有一个问题:您通常如何在 C++/STL 中折叠数据列表?


STL确实有这样的功能:std::accumulate http://www.cppreference.com/wiki/stl/algorithm/accumulate。然而它在标题中<numeric>, not <algorithm>.

实际上关于“折叠”的维基百科页面 http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29#Implementation已经列出了foldl/foldr大多数编程语言(包括 C++)上的函数。

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

STL容器如何折叠? 的相关文章

随机推荐

  • 在 Rails 上实现类似 Twitter 的主题标签

    我想在我的应用程序上实现类似 Twitter 的主题标签 假设我有用户输入到文本区域 我从 paris 来到 london 然后我想构建主题标签的标签云 我正在考虑使用 acts as ttagable on 因此 我从后端的文本中找到所有
  • 无法点击带有 ajax 加载的按钮

    我正在将内容加载到 result div 中 在该内容中 有一个按钮 使用ajax加载内容后 我无法单击该按钮 我没有收到警报 页面看不到
  • 为docker容器分配IP地址?

    我是 Docker 新手 是否可以将 IP 地址 从 DHCP 服务器 分配给在主机或虚拟机上运行的 Docker 容器 如果是 有人可以指出我正确的方向吗 如果不是 这是否是容器方法的基本限制 或者只是 Docker 中尚未提供的功能 D
  • 在 Java 中重构代码,替代大型 if 语句

    我正在重构我正在处理的项目中的一些代码 并且遇到了一个遵循以下格式的大型 if else if 语句 if changer instanceof AppleChanger panel new ApplePanel else if chang
  • Android 小部件 ImageButton 在屏幕旋转时丢失图像

    我的主屏幕上有一个小部件 其中有几个具有默认背景图像的图像按钮 通过配置活动 我可以更改任何 ImageButton 上的图像 问题是 当屏幕旋转时 ImageButton 上的图像消失并变回默认图像 我不知道为什么会发生这种情况或如何解决
  • 没有域名的 SSL 证书

    我有一堆 node js 应用程序通过 websockets ws 向 apache 站点提供信息 网站本身没有域名并通过其 IP 地址进行访问 不幸的是 这是不可协商的 问题如下 如果没有安全连接 浏览器将阻止 ws 交通量 所以我必须使
  • 使用mapDispatchToProps时Promise不返回

    最近 我从使用一种乐观操作转变为添加另外两种乐观操作来检测成功 失败服务器响应 通过乐观的方法 我能够通过速记方式和承诺的链条传递我的行动 class Post extends Component onUpdateClick props t
  • 弹出子导航视图时透明TabBar iOS 15

    我有一个带有 TabBar 的 SwiftUI 应用程序 如果我从 NavigationView 打开详细信息子视图 然后单击 后退 TabBar 将变为透明 显示 TabBar 图标下方的 Feed 中的项目 从主屏幕中 打开子导航详细信
  • CR 错误 无法打印组部分,因为其条件字段不存在或无效

    我继承了 CR 报告 运行时出现错误 无法打印组部分 因为其条件字段不存在或无效 格式化该部分以选择另一个条件字段 有没有办法让我知道它指的是哪个领域 关于我什么时候应该开始寻找问题的任何指示 我已经验证了 DB 它指向正确并且 Sp 返回
  • Maven 坚持认为 JAVA_HOME 未正确定义,除非我将其作为 sudo 运行

    Ubuntu 22 04 1 从 20 04 5 最新更新 当我尝试用 Maven 构建任何东西时 它会抱怨 mvn v The JAVA HOME environment variable is not defined correctly
  • Visual Studio“转到定义”菜单选项行为 - 为什么 C# 和 VB 项目之间不一致

    当使用 C 项目在 VS2005 中进行开发时 我右键单击框架方法 属性 类型并选择 转到定义 默认情况下 我们会得到一个新的锁定选项卡 其中包含从框架生成的代码 并适当标记为 来自元数据 然而 当我们在 VB NET 项目中执行相同操作时
  • 在正则表达式中匹配两个单词及其之间的一些字符

    我想在没有时对字符串进行匹配abc后面跟着一些字符 可能没有 并以 com 我尝试了以下方法 abc com or abc com or
  • 如何在 useminPrepare 中为 html 文件中的每个块定义单独的流程?

    我们在 index html 中定义了 2 个块 一个用于第三方库 另一个用于我们的应用程序文件 由于第 3 方库已经缩小 我们只想将它们连接起来 而不是丑化 我怎样才能做到这一点useminPrepare
  • 计算 ggplot2 stat_binhex 中 bin 的百分比

    我正在生成不同组的数据点的 binhex 图 每个组可能有不同的总点数 因此我希望它不是每个 bin 值的绝对点数 而是该组内总点数的百分比 这是我目前正在尝试的 d lt data frame grp c rep a 10000 rep
  • 全局安装 npm

    是否可以全局安装 npm 这是一个好主意吗 我使用 npm install 命令安装了 npm 并能够运行 npm start 然后 将我的项目发布到 github 后 我想确保如果有人克隆它 它也能运行 所以我将它克隆到我机器上的另一个目
  • .Net KeyEventArgs 返回与输入

    在 c net 应用程序中使用以下代码 字符串键 e KeyCode ToString 在 net 1 1中键 输入 在 net 3 5中键 返回 我的问题是它们为什么不同 The Keys枚举具有相同的值Enter and Return
  • Rails 每当 gem:每月 20 日

    我在互联网上搜索了这一点 并且文档并没有真正具体讨论每月的工作 所以我希望这里有人能告诉我如何做到这一点 我已经安装了whenever gem 我需要知道的是正确的语法 every month on gt 20th at gt 02 00
  • 在文件中写入大量数据的最快方法

    我正在尝试创建随机实数 整数 字母数字 字母字符串 然后写入文件直到文件大小达到10MB 代码如下 import string import random import time import sys class Generator def
  • 何时使用 Xcode 分布式构建功能

    我在一个小型 iPhone 开发团队工作 在我们的办公室里 我们在任何时候至少有 4 个 XCode 副本在网络上运行 考虑让每个人都运行它 我们使用标准 WIFI 交换机联网 因此网络速度和延迟不如有线网络 只是想知道 使用分布式构建是否
  • STL容器如何折叠?

    我需要 Haskell 的类似物foldl功能可折叠任何 STL 容器 预期签名如下 template Iterator FoldingFunction Result Result foldl Iterator begin Iterator