C++ iota of std::iota代表什么?

C++ iota of std::iota代表什么?,c++,naming-conventions,c++11,C++,Naming Conventions,C++11,我假设“I”是递增的,“a”是赋值的,但我无法理解或找到答案。此外,它看起来非常类似于非标准的itoa,我认为这很容易混淆。它是希腊字母,有时在数学中用于表示数字集或单位向量。在C++案例中,你得到了一个构造的向量集。与itoa无关。iota不代表任何东西,它不是首字母缩写或首字母缩写。它是希腊字母表中第九个字母的名字 发件人: iota的名称取自编程语言APL 创建(“一种编程语言”)。他在演讲中讨论了APL,包括对APL物联网功能的描述: 例如,当应用于参数n时,由ι表示的整数函数生成第一个

我假设“I”是递增的,“a”是赋值的,但我无法理解或找到答案。此外,它看起来非常类似于非标准的itoa,我认为这很容易混淆。

它是希腊字母,有时在数学中用于表示数字集或单位向量。在C++案例中,你得到了一个构造的向量集。与itoa无关。

iota
不代表任何东西,它不是首字母缩写或首字母缩写。它是希腊字母表中第九个字母的名字

发件人:

iota的名称取自编程语言APL

创建(“一种编程语言”)。他在演讲中讨论了APL,包括对APL物联网功能的描述:

例如,当应用于参数
n
时,由
ι
表示的整数函数生成第一个
n
整数的向量

那就是

在上面的引文中,我输入了
ι
,但Unicode实际上为APL的iota提供了一个专用的代码点:


为了回应评论者的要求,我将在这方面进一步探讨“iota”的词源

最有可能的答案是,艾弗森博士想要一个符号来提醒用户“整数”一词,并使用字母“i”作为典型的整数变量,特别是对于数组订阅。不幸的是,艾弗森博士于2004年去世,几年后这个问题才被提出,所以我们无法向他寻求解释

但是让我们假设有一个更深的含义

根据牛津英语词典,“iota”是“希腊字母I,ι的名称,对应于罗马字母I,I;希腊字母表中最小的字母”(物理上最小,我猜不是字母顺序),也意味着“最小或非常小的粒子或数量”。《牛津英语词典》最早使用这个意思是由丹尼尔·费特利(Daniel Featley)于1636年提出的:

我们会失去上帝的书中的任何一点或一点点吗

克拉维斯·密斯塔(Clavis mystica)将自己描述为“开启《圣经》困难而神秘的文本的钥匙”,这句话特别指的是马太福音5:18:

转录:

因为我实实在在地告诉你们,一件事或一个头衔,在他和大地过去之前,在这一切都实现之前,从法律上说,决不会过去

《牛津英语词典》将“iote”作为“jot”的另一种形式,它(类似于“iota”)源自希腊语“iote”ἰῶτα”,这是有关字母的希腊名称。费特利为什么把“物联网”改为“物联网”?可悲的是,我的个人图书馆里没有克拉维斯·密斯塔的副本,所以我无法进一步调查

在马太福音5:18的原始希腊语中,“iote”是ἰῶτα”和“title”(或更现代的“title”)是“κεραα”。“κεραα”一词大致意思是“衬线”或“撇号”。因此,这段圣经经文是指最小细节的概念,并使用“ἰῶτα”指希腊字母表中物理上最小的字母iota

因此,我们可以推断STL函数
iota
,及其APL先行项
,以希腊字母“ι”中物理上最小的字母命名,因为这些函数产生的整数之间的间隔最小

,希腊字母iota来自腓尼基字母yōdh


这是我目前想回答这个问题的编程领域。

std::iota
将用连续递增的值填充迭代器范围

为了回答你的具体问题,它实际上并不代表任何东西。Iota(英语发音为“eye oh duh”或“eye oh tuh”)是一个具有数学含义的希腊字母


它在C++11中是标准的,但在早期的标准中不是。

哦,我一直觉得自从
std::iota(start,end,0)
基本上代表

for(size_t i = 0; i < std::distance(start, end) ; i++) { start[i] = i; }
for(size_t i=0;i
然后基本上为每个数组元素“分配i”,iota是希腊语中的i,所以在这里

(如果这就是@robmayoff’s中提到的选择APL的理由,我不会感到惊讶,尽管我不知道是否是这样。)

我引自本页:你可以在这里找到更多关于这个主题的信息

STL受到Ken Iverson关于APL的工作的极大影响。在肯1979年的图灵奖演讲中,你会发现这样一句话:

例如,用ι表示的整数函数产生前N个整数的向量


std::iota
-它是可从C++11获得的
标题(不在
中)中的标准函数模板

它对于在[first,last]范围内生成一系列连续的递增值(++val)非常有用

std::list li(5);
std::iota(li.begin(),li.end(),3);//3 4 5 6 7

可能来自APL?希腊字母Iota用于生成连续整数的向量。如果你认为这有点混淆,Google Go会将
Iota
作为一个关键字专门声明的标识符,其值在每个定义中递增一次,但只有在定义常量时才会递增。同意
itoa
混淆;我没有他也有同样的想法。有趣的是,我不知何故认为这个名字是从“atoi”的倒数而来的——有点倒数。但这并没有真正的意义。那个么你们为什么要引入这个拼写错误?;-)但这只是把问题往后推了一点:APL为什么要调用这个函数
?我认为APL使用iota是因为,至少在英语中,它的意思大致是最小的可测量量(例如,“我一点也不在乎”)。很酷的对话!让我在这里评论一下你对“iota”与“iota”的讨论
std::list<int> li(5);
std::iota(li.begin(), li.end(), 3); // 3 4 5 6 7