【发布时间】:2015-08-20 01:45:15
【问题描述】:
我有一个关于 std::accumulate 的问题。
通常,accumulate 将采用 std::vector<U> vect,T 类型的种子,并将(左)折叠函数 f TxU->U 用于该范围:
T result = accumulate( vect.begin(), vect.end(), seed, f);
是否有一种自然的方法可以为最后一个元素应用特定版本的f?
这是针对 PDE 的,我对最后一步有一个特殊条件。
我们可以这样做:
T result1 = accumulate( vect.begin(), vect.end()-1, seed, f1);
T result2 = f2( result1, vect.back() );
但我想知道是否有更自然的方法,因为 f2 实际上是 f1 的一个特例。
谢谢
【问题讨论】:
-
您的版本对我来说似乎很自然(假设
vect不为空)。 -
我什至会说其他任何事情都不太清楚。
-
"并将(左)折叠函数
fTxU->U..."。要么你的大脑被 Haskel 损坏了,要么我的被 C++ 损坏了。我无法决定哪个,所以它可能是我的。 -
我去 Haskell Anonymous...
标签: c++ stl stl-algorithm