std for each



Автор Булат 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);

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Передать функтор по ссылке в std::for_each

Внесение значений в ячейки через цикл For в vba Excel
что за "ЯчейкаА"? это как понимать?
где объявление i?
а как нужно?
хоть с
подробнее...
спросили в Active Directory Citi Open
Помогите создать скрипт
Уффф. первичный набросок. Остальное добавлю в комменты.. . ппц короче скриптик вышел, но у меня
подробнее...

Помощь в написание программы на VBA
А не проще из Access подцепить таблицу Excel в качестве источника данных и там уже можно
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Combat Records The International
Задали по английскому написать про "Olympic games"!
OLYMPIC GAMES

The Olympic Games have a very long history. They began in 777 BC in Greece
подробнее...
спросили в Хобби
Нужен не большой рассказ на английском язык на тему \"Мое хобби\"
1.My hobby

Hobby is what a person likes to do in his spare time. Hobbies differ like
подробнее...

Как в Excel посчитать количество ячеек с определенным значением?
пишешь формулу:
=СУММЕСЛИ (ДИАПАЗОН КОТОРЫЙ НАДО ПРОСМОТРЕТЬ; КАКОЕ ЧИСЛО ИЩЕМ) /КАКОЕ ЧИСЛО
подробнее...

Excel. VBA. Поиск текста. Ошибка когда не найдет текст
ну дык.. . проверяйте сперва -- нашлось ли что-либо -- перед тем как делать что-то с найденным.подробнее...

Программа EXCEL, оставить необходимые знаки, остальные убрать?
Если нужно найти только часть строки до первого знака "-", то можно использовать 2 функции: НАЙТИ и
подробнее...

Есть вопрос по vbs (или как вариант bat)
Имхо проще так (я на блокноте проверял) :

%windir%system32 asklist /NH /FI "IMAGENAME eq
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*