std::accumulate Dokumentation auf cppreference.com lautet:std :: akkumuliert BinaryOperator Nebenwirkungen
op irgendwelche Iteratoren nicht ungültig ist, einschließlich der Stirn Iteratoren oder alle Elemente des beteiligten Bereichs ändern (da + c +11)
Später wird es eine possibile Implementierung gezeigt, dass ich hier melden:
template<class InputIt, class T, class BinaryOperation>
T accumulate(InputIt first, InputIt last, T init,
BinaryOperation op)
{
for (; first != last; ++first) {
init = op(init, *first);
}
return init;
}
Wie könnte op "einige Iteratoren ungültig machen" oder "Elemente des Bereichs modifizieren", vorausgesetzt, diese Implementierung von std :: accumulate?
' [& vec] (int a, int b) {vec.clear(); Rückgabe a + b; } '? – LogicStuff