当前位置: 首页 > 知识库问答 >
问题:

对std::accumple的第三个参数有很好的理由吗?

颛孙博易
2023-03-14
template <typename FwdIter> inline
auto accumulate(FwdIter begin, FwdIter end) -> std::iterator_traits<FwdIter>::value_type
{
    return std::accumulate(begin, end, std::iterator_traits<FwdIter>::value_type());
}

我可能忽略了什么。为什么这不是std::acculture的现有重载?它的作用是如此明显,不能被忽视;有人有很好的理由使第三个参数成为强制性的。

(另请参见理解std::accumput--我理解为什么您想要提供初始值的能力,我只是不理解为什么它是强制性的)

共有1个答案

胥智
2023-03-14

以便可以推导模板参数。

该声明是

template< class InputIt, class T >
T accumulate( InputIt first, InputIt last, T init );

而从中推导返回值的唯一参数init。因为它不必是迭代器的值类型。

 类似资料:
  • 问题内容: 有没有很好的方法来获取下一个星期三的日期?也就是说,如果今天是星期二,我想获取本周星期三的日期;如果今天是星期三,我想知道下星期三的日期;如果今天是星期四,我想获取下周的星期三日期。 谢谢。 问题答案: 基本算法如下: 获取当前日期 取得星期几 与周三找到不同 如果差异不是正数,则加7(即坚持下一个到来/将来的日期) 增加差异 这是一个片段,展示了如何使用: 相对于我现在的位置,上述代

  • 问题内容: 我正在寻找良好的PHP地理位置服务,因此当我启动我的应用程序时,我可能会遇到类似以下情况: 以纬度和经度值检索用户的位置。 问题答案: 地理定位将需要在浏览器中完成,因为服务器(即PHP)将永远无法找到大部分相关数据。在浏览器中进行地理定位的主要API是Google的API,但是作为开发人员,您无需使用该API。您将使用标准化的浏览器API(尽管目前仅少数浏览器支持)。 对于在服务器端

  • 我有寻呼路线/电影吗?categoryId=21213在这个页面上,我有一部分演员,点击它应该重定向到/movies?categoryId=21213/演员?actorId=23434234 我应该如何正确地描述用一个actor来渲染我最新的组件?我试过了 但这不起作用

  • 问题内容: 我是相对较新的Python转换者。我编写了一些代码来从各种来源获取/绘制数据,以使每周的报告和预测自动化。我对Jython的概念很感兴趣,并想移植一些我写给Jython的Python代码。为了快速完成此任务,我需要一个Jython(或Java)的NumPy克隆。那里有这样的东西吗? 问题答案: 我找不到任何的numpy的一个克隆,但还有很长的Java的NUMERICS包列表在这里 -这

  • 问题内容: 在什么情况下Java 8流中会调用“ reduce”的第三个参数? 下面的代码尝试遍历字符串列表,并将每个字符串的第一个字符的代码点值相加。最终的lambda返回的值似乎从未使用过,并且,如果您插入println,则似乎永远不会调用它。该文档将其描述为“组合器”,但我找不到更多详细信息… 问题答案: 您在说这个功能吗? 使用提供的标识,累积和组合功能,对此流的元素进行简化。这等效于:

  • 问题内容: 我知道前两列是什么,但是什么? 问题答案: 它称为struct标记,可以在运行时使用包对其进行解析。 来自https://golang.org/ref/spec#Struct_types: 字段声明后可以跟一个可选的字符串文字标签,该标签成为相应字段声明中所有字段的属性。 这些标记通过反射接口可见,并参与结构的类型标识,但否则将被忽略。 一些使用反射的包(例如)并使用标签来更好地处理特