У меня есть вопрос относительно std :: accumulate.C++ накапливает способ применения конкретной функции к последнему элементу
Как правило, накапливают займет 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' не пуст). – Jarod42
Я бы даже сказал, что все остальное будет менее ясным. – TartanLlama
"и (влево) свернуть функцию' f' 'TxU-> U' ...". Либо ваш мозг был поврежден Haskel или моим C++. Я не могу решить, что, возможно, это мое. – nwp