| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Не работают функторы, сохраняют старое значение |
| Автор: ller 12.6.2009, 12:33 | ||
Вот простенькая програмка с использованием функторов. vi заполнен числами. В дебагере при работе for_each внутренние переменные класссов меняются как положенно, но при выводе пишут минимальный int и 0 соответственно. |
| Автор: azesmcar 12.6.2009, 15:19 | ||
| ller for_each функтор по значению принимает, все что он изменяет, изменяется в локальной копии, а ваша остается неизменной. Но есть и хорошая новость, она возвращает свою локальную копию.
|
| Автор: mes 12.6.2009, 15:31 |
| я понимаю, что приведенные в примере функторы, лишь экспериментальные, но на всякий случай скажу что есть : std::max_element : http://www.cplusplus.com/reference/algorithm/max_element/ std::min_element : http://www.cplusplus.com/reference/algorithm/min_element/ std::accumulate : http://www.cplusplus.com/reference/std/numeric/accumulate/ |
| Автор: ller 12.6.2009, 15:37 |
| azesmcar Что то подобное я предполагал, поэтому создал указатель и инициализировал его... Спасибо за ответ Добавлено @ 15:42 mes Про max и min элемет спасибо, не встретил их в книге, accumulate знал. Я просто учусь и пробую |
| Автор: ller 15.6.2009, 01:22 |
| все |
| Автор: andrew_121 15.6.2009, 01:34 |
| )) Три дня думал... |
| Автор: ller 15.6.2009, 13:57 |
| Так не знал, что метить надо )))) |