我假设“ i”是增量,“ a”是赋值,但我找不到答案。此外,它看起来非常相似的非标准 itoa,我认为这是令人困惑的。
itoa
它是希腊字母,有时在数学中用来表示一组数字或单位向量。在 C + + 的情况下,您可以得到一个构造的向量集。跟 Itoa 没关系。
C + + iota既不是首字母缩写也不是首字母缩写。它是单词“ iota”,这是 希腊字母表中的第九个字母: Ι的英文拼写。字母的小写版本通常像英文字母 我一样绘制,但是没有点。根据您的字体,衬线可能略有不同。
iota
最初的 SGI STL 文档 给出了这样的解释:
iota的名称取自编程语言 APL。
Ken Iverson 创建了 急性粒细胞白血病(代表“编程语言”)。在他1962年出版的《 程序设计语言》一书的1.7个“特殊向量”中,他在第15页介绍了 something (iota)作为“区间向量”:
区间向量区间向量 Something[俄语](N)被定义为以 J开头的整数的向量。
在他的 1979年图灵奖讲座 “作为思想工具的符号”中,他对 APL 的功能作了如下描述:
例如,⍳表示的 整数函数在应用到参数 n时产生第一个 n整数的向量,..。
⍳
n
所以最有可能的答案是艾弗森博士想要一个符号来提醒用户“整数”,“间隔”,以及使用字母“ i”作为一个典型的整数变量,特别是在数组下标时。遗憾的是,艾弗森博士于2004年去世,比这个问题提出的时间还早好几年,所以我们不能要求他给出更精确的解释。
顺便说一下,Unicode 有两个用于小写 iota 的代码点: 一个用于编写希腊语,另一个用于编写 APL。写希腊文的是 ι,U + 03 B9“希腊小字母 IOTA”。编写 APL 的是 ⍳,U + 2373“ APL 功能符号 IOTA”。
ι
为了回应评论者的要求,我将在这个上下文中进一步讨论“ iota”的词源。
但我们假设还有更深层的含义。
根据牛津英语词典,“ iota”是“与罗马字母“ i,i”对应的希腊字母的名字; 希腊字母表中最小的字母”(我猜是物理上最小的,不是按字母顺序排列的) ,也意味着“最小的,或者非常小的粒子或数量”。牛津英语词典对这个词的最早已知用法来自丹尼尔 · 费特利(Daniel Featley)在1636年写的 神秘锁骨:
我们是否应该失去,或者轻率地错过,上帝之书的任何一点点或一点点?
克拉维斯神秘主义将自己描述为“一个重要的开端,潜入圣经中困难而神秘的经文”,这句话特别指的是马太福音5:18。返回文章页面
转录:
因为我实在告诉你们,直到天地过去,一个赌注或一个头衔,都不能从律法上过去,直到一切都应验了。
在马太福音5:18的原始希腊文中,“ iote”是“ something something τα”,“ title”(或者更现代一点,“ title”)是“ κεραα”。“ κεραα”一词大致意思是“衬线”或“撇号”。所以这段圣经经文提到了 最小的细节的概念,并且使用 something something τα 来指代作为希腊字母表中物理上最小的字母的 iota。
费特利,作为一个圣经学者(他获得了神学博士学位) ,无疑可以阅读希腊文。我猜他只是把这个字母的希腊文名字,就是“韧 something τα”音译成了英文的“ iota”。他为什么不按照詹姆斯国王的译文拼写“ iote”?我不知道。
因此,我们可以推断 STL 函数 iota及其 APL 先行词 ⍳,通过圣经的方式,以希腊字母“ ι”的物理上最小的字母命名,因为这些函数产生的整数被整数可能被分开的最小数量分开。
根据 Wikipedia ,希腊字母 iota 来自腓尼基字母 y dh。
这是编程的最远领域,因为我目前希望去这个问题。
std::iota将使用逐次递增的值填充迭代器范围。
std::iota
为了回答你的具体问题,它实际上不代表任何东西。Iota (英语读作“ eye-oh-duh”或“ eye-oh-tuh”)是一个具有数学内涵的希腊字母。
它在 C + + 11中是标准的,但在早期的标准中不是。
我一直以为 std::iota(start,end,0)基本上就是
std::iota(start,end,0)
for(size_t i = 0; i < std::distance(start, end) ; i++) { start[i] = i; }
然后你实际上“赋值 i”给每个数组元素 iota 是希腊语的 i 所以这里。
(如果@robmayoff 的 回答中提到的 APL 选择的理由是这样,我不会感到惊讶,尽管我不知道是否是这样。)
我从这一页引用: 真丢脸在那里你可以找到更多的主题。
STL 在很大程度上受到了肯 · 艾弗森 APL 工作的影响。在1979年肯的图灵奖演讲中,你会发现这样一句话: 例如,ι 表示的整数函数产生前 N 个整数的向量
STL 在很大程度上受到了肯 · 艾弗森 APL 工作的影响。在1979年肯的图灵奖演讲中,你会发现这样一句话:
例如,ι 表示的整数函数产生前 N 个整数的向量
std::iota-这是一个标准的函数模板在 <numeric>头(不在 <algorithm>)可从 C + + 11。
<numeric>
<algorithm>
它对于在范围[ first,last ]中生成一系列连续的递增值(+ + val)非常有用。
std::list<int> li(5); std::iota(li.begin(), li.end(), 3); // 3 4 5 6 7