Это вопрос терминологии или концепций (а не концепций C++).Какой термин я могу использовать для функции, применяемой к каждому элементу последовательности, учитывая ее индекс?
Если я пишу
std::for_each(my_start, my_end, f);
Вы бы сказать, что я применил функцию или функтор, или функциональный объект f
к каждому элементу в диапазоне; и подпись F является либо
void f(const decltype(*my_start)& x);
или имеет оператор
void operator()(const decltype(*my_start)& x);
Теперь предположим, что я делаю то же самое, но функция получает не только ссылку на элемент диапазона, но и индекс: Для * my_start он получает 0, то 1 и т.д. Теперь подписи
void f(size_t i, const decltype(*my_start)& x);
void operator()(size_t i, const decltype(*my_start)& x);
(если вам не нравится size_t
тогда делать вид, что int
).
Итак, вопрос: существует ли термин для этих видов функторов/функций? Или для этой операции применения такого объекта функции/функтора/функции к ряду элементов?
enumerate? Сравните с функцией Python [enumerate] (https://docs.python.org/2/library/functions.html#enumerate), которая дает '(idx, element)' для каждого элемента исходной последовательности. – Andrew