我假设“i”是增量而“a”是指定的,但我无法弄清楚或找到答案。此外,它看起来非常类似于我认为令人困惑的非标准itoa
。
答案 0 :(得分:160)
来自the original SGI STL documentation:
名称iota取自编程语言APL。
In his Turing Award lecture, Ken Iverson (inventor of APL) said this:
例如,
ι
表示的整数函数在应用于参数n
时生成第一个n
整数的向量,...
ι
为the lower-case Greek letter iota。
在上面的引文中,我输入了ι
,U+03B9, “GREEK SMALL LETTER IOTA”,但Unicode实际上有一个APL的专用代码点:⍳
是U+2373, “APL FUNCTIONAL SYMBOL IOTA”。
为回应评论者的要求,我将在此背景下进一步阐述“iota”的词源。
最有可能的答案是Ken Iverson想要一个符号,它会提醒用户“整数”这个词,并使用字母“i”作为典型的整数变量,特别是对于数组下标。
但我们假设有更深层的含义。
根据牛津英语词典,“iota”是“希腊字母Ι,ι的名字,对应于罗马I,i;希腊字母表中最小的字母“(物理上最小,不是按字母顺序排列,我推测),也指”最小或非常小的粒子或数量“。 OED最早使用的意思是来自Daniel Featley于1636年的 Clavis mystica :
我们是否会失去或轻易地通过上帝的Booke的任何一点点?
Clavis mystica 是部分圣经的指南,这句话特别指的是马太福音5:18。 The 1611 edition of the King James Version has this text for Matthew 5:18:
转录:
我实在告诉你,直到heauen和地球过去,一个人或一个头衔,不应该从法律上消失,直到所有人都满足为止。
OED将“iote”作为另一种形式的“jot”,其中(如“iota”)来自希腊语“ἰῶτα”,这是该字母的希腊名字。为什么Featley将“iote”改为“iota”?可悲的是,我的个人图书馆里没有 Clavis mystica 的副本,所以我无法进一步调查。
在马太福音5:18的原始希腊文中,“iote”是“ἰῶτα”,而“title”(或更现代,“tittle”)是“κεραία”。 “κεραία”一词大致是指“serif”或“撇号”。因此,本圣经经文指的是最小细节的概念,并使用“ἰῶτα”来表示字母iota作为希腊字母表中物理上最小的字母。
因此,我们可以推断出STL函数iota
及其APL前因⍳
,在希腊字母“ι”的物理上最小的字母后,通过圣经命名,因为这些函数产生的整数由整数可以分开的最小量分隔。
According to Wikipedia,希腊字母iota来自腓尼基字母yōdh。
这就像我目前希望针对这个问题进行编程一样远。
答案 1 :(得分:29)
它的希腊字母有时会用于数学中来表示数字或单位向量。在C ++案例中,您将获得构造的向量集。与itoa没什么关系。
答案 2 :(得分:22)
std::iota
将使用连续递增的值填充迭代器范围。
要回答您的具体问题,它实际上并不代表任何事情。 Iota (英语中发音为“eye-oh-duh”)是一个带有数学内涵的希腊字母。
它是C ++ 11中的标准,但在早期标准中没有。
答案 3 :(得分:3)
哦,我始终认为自std::iota(start,end,0)
基本上代表
for(size_t i = 0; i < std::distance(start, end) ; i++) { start[i] = i; }
然后你基本上&#34;指定我&#34;对于每个数组元素,iota是i的希腊语,所以那里。
(如果这是APL选择的理由,我会不会感到惊讶,在@ robmayoff&#39; s answer中提到,虽然我不知道是否是这种情况。 )
答案 4 :(得分:1)
我从此页面引用:iotashaming,在这里您可以找到有关此主题的更多信息。
STL受Ken Iverson在APL方面的工作影响很大。在1979年的肯·图灵奖演讲中,您会发现以下短语:
“例如,由ι表示的整数函数会产生前N个整数的向量。”
答案 5 :(得分:0)
datatable(
iris, extensions = 'Buttons', options = list(
dom = 'Blfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
)
)
- 它是 C++11 提供的 std::iota
标头中的标准函数模板(不在 <numeric>
中)。
它对于在 [first, last) 范围内生成一系列连续的递增值 (++val) 很有用。
<algorithm>