[英]Why can I not retrieve the index of a variant and use that to get its content?
[英]What term can I use for a function applied to each element of a sequence, while aware of its index?
這是一個關於術語或概念(不是 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 是一元函數,我們可以將枚舉變體稱為枚舉一元函數,其第一個參數可以是enumerator 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.