Автор Булат 1 задал вопрос в разделе Другие языки и технологии
Передать функтор по ссылке в std::for_each и получил лучший ответ
Ответ от Ra[гуру]
Почему обхитрить? Если нужно, то можно.
Современные плюсы (С++11) предлагают менее извращенные решения, но можно и поизвращаться:
WeightedHand copy[10];
---
float sum = 0;
struct Summarizer {
float *sum;
Summarizer(float *p): sum(p) {}
void operator () (const WeightedHand &v) { *sum += v.weight; };
} ssum(&sum);
std::for_each(copy, copy + 10, ssum);
---
struct Summarizer {
float operator()(float result, WeightedHand &op) { return result + op.weight; }
} summarizer;
float sum = std::accumulate(copy, copy + 10, 0.0f, summarizer);
---
C++11:
float sum = 0;
std::for_each(copy, copy + 10, [&sum](WeightedHand &e){ sum += e.weight; });
---
float sum = 0;
for (auto e : copy) sum += e.weight;
---
float sum = std::accumulate(begin(copy), end(copy), 0.0f, [](float r, WeightedHand &o) { return r + o.weight; });
ra
Высший разум
(108783)
> можно ли именно в std::for_each и др. алгоритмы передать ссылку на функтор.
Специализировать шаблон, как это сделали вы в своем примере. По другому никак, полагаю. Можно обертку написать для нужного алгоритма:
template<class It, class Fn>
void for_each_ref_func(It first, It last, Fn& func) { std::for_each<It, Fn&>(first, last, func); }
...
for_each_ref_func(copy, copy + 10, sum);
Внесение значений в ячейки через цикл For в vba Excel
что за "ЯчейкаА"? это как понимать?
где объявление i?
а как нужно?
хоть с
подробнее...
ребят найдите кто нить или составьте текст про интернет на английском срочно надо .НЕ КИДАЙТЕ МЕНЯ. НЕ КИДАЙТЕ МЕНЯ
1. The Internet: is it always safe?
At present we cannot imagine our life without the
подробнее...
Помогите создать скрипт
Уффф. первичный набросок. Остальное добавлю в комменты.. . ппц короче скриптик вышел, но у меня
подробнее...
Помощь в написание программы на VBA
А не проще из Access подцепить таблицу Excel в качестве источника данных и там уже можно
подробнее...
где найти текст про герб США на английском языке? Помогите, а?
American Symbols
The American flag is often called "The Stars and Stripes", it is also
подробнее...
Задали по английскому написать про "Olympic games"!
OLYMPIC GAMES
The Olympic Games have a very long history. They began in 777 BC in Greece
подробнее...
Помогите, пожалуйста, найти простой рецепт Yorkshire pudding на английском языке. Заранее спасибо.
Yorkshire pudding is traditionally made in one pan (even more traditionally in the pan catching the
подробнее...
Нужен не большой рассказ на английском язык на тему \"Мое хобби\"
1.My hobby
Hobby is what a person likes to do in his spare time. Hobbies differ like
подробнее...
помогите написать сочинение по английскому языку на тему: " мой любимый предмет".
My Favourite Subject
Speaking about my favourite subject I must admit that I was
подробнее...
Как написать скрипт на VBS, который бы копировал папку из одного места в другое
Для файлов:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File =
подробнее...
Как в Excel посчитать количество ячеек с определенным значением?
пишешь формулу:
=СУММЕСЛИ (ДИАПАЗОН КОТОРЫЙ НАДО ПРОСМОТРЕТЬ; КАКОЕ ЧИСЛО ИЩЕМ) /КАКОЕ ЧИСЛО
подробнее...
Pokcet money-how much do you get-how much do you need(socinenie)
I don't get pocket money 🙁
I have to
подробнее...
Excel. VBA. Поиск текста. Ошибка когда не найдет текст
ну дык.. . проверяйте сперва -- нашлось ли что-либо -- перед тем как делать что-то с найденным.
подробнее...
Программа EXCEL, оставить необходимые знаки, остальные убрать?
Если нужно найти только часть строки до первого знака "-", то можно использовать 2 функции: НАЙТИ и
подробнее...
Есть вопрос по vbs (или как вариант bat)
Имхо проще так (я на блокноте проверял) :
%windir%system32 asklist /NH /FI "IMAGENAME eq
подробнее...