我可以对应用于序列的每个元素的函数使用什么术语,同时知道它的索引

What term can I use for a function applied to each element of a sequence, while aware of its index?

本文关键字:术语 什么 索引 应用于 函数 元素 我可以      更新时间:2023-10-16

这是一个关于术语或概念(不是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)。

所以,问题是:这些类型的函子/函数是否有一个术语?或者对于将这样的函数/函子/函数对象应用于一系列元素的操作?

因此,根据@Andrew的评论,我们将此操作称为枚举foreach,如果原始f是一元函数,我们可以将枚举变体称为枚举一元函数,它的第一个参数可以是枚举器