c++ std::ι的ι代表什么?

chy5wohz  于 2023-01-06  发布在  其他
关注(0)|答案(6)|浏览(377)

我假设“i”是increment,“a”是assign,但是我没有找到答案。而且,它看起来非常类似于非标准的itoa,我认为这很容易混淆。

8yoxcaq7

8yoxcaq71#

C++ iota不是首字母缩写词,也不是首字母缩写,它是单词"iota",这是the ninth letter of the Greek alphabet名称的英文拼写:字母的小写形式通常像英文字母i,但没有点。根据字体的不同,衬线可能会略有不同。
The original SGI STL documentation给出了以下解释:
名称iota取自编程语言APL。
Ken Iverson创建了APL(它代表"编程语言"),在他1962年出版的著作A Programming Language的1.7节"特殊向量"中,他在第15页引入了(ι)作为"区间向量":
区间向量******j n *)定义为以 * j * 开头的整数的向量。
在他的1979 Turing Award讲座,“Notation as a Tool of Thought”,他给出了APL的函数的描述:
例如,由表示的 * integer * 函数在应用于参数n,...时生成前n个整数的向量。
因此,最有可能的答案是,艾弗森博士想要一个符号,它会提醒用户单词"integer",单词"interval",以及字母"i"作为典型整数变量的使用,特别是对于数组下标。
"选择" ι "符号很可能是因为它在数学中被用来表示一个"。"他解释了他的推理。
不幸的是,艾弗森博士于2004年去世,比这个问题在Stack Overflow上提出的时间早了好几年,所以我们不能要求他给出更精确的解释。
顺便说一下,Unicode有两个小写字母iota的代码点:一个用于写希腊语,另一个用于写APL。写希腊语的是ιU+03B9, “GREEK SMALL LETTER IOTA”。写APL的是U+2373, “APL FUNCTIONAL SYMBOL IOTA”
为了回应评论者的要求,我将在本文中进一步讨论"iota"的词源。
让我们假设有更深层的含义。
根据《牛津英语词典》,"iota"是"希腊字母I,ι的名字,对应于罗马字母I,i;希腊字母表中最小的字母"(我想是物理上最小的,而不是按字母顺序),也意味着"最小的,或者非常小的粒子或数量"。OED中已知的这个意思最早的用法来自Daniel Featley在1636年的Clavis mystica
我们会失去,或巧妙地通过,任何一点或一点点的神的书?

转录:
我实在告诉你们,直到天地都过去,一分银子,一个爵位,决不能脱离律法,直到一切都成就了。
在马太福音5:18的希腊原文中,"iote"是"τ α",而"title"(或更现代的"title")是"κ ε ρ α ί α"。"κ ε ρ α ί α"一词的意思大致是"衬线"或"撇号"。因此,这节圣经经文指的是"最小的细节"的概念,并使用"τ α"来指字母iota,因为它是希腊字母表中最小的字母。
作为一名圣经学者(他获得了神学博士学位),费特利无疑可以读懂希腊语。我猜他只是把字母的希腊语名称"ι τ α"音译成了英语"iota"。他为什么不按照詹姆斯国王译本的拼写"iote"呢?我不知道。
因此,我们可以推断STL函数iota及其APL前件是以希腊字母表中物理上最小的字母"ι"命名的,因为这些函数产生的整数被整数可以被分隔的最小量分隔。
According to Wikipedia,希腊字母iota来自腓尼基字母yōdh。
对于这个问题,这是我目前所希望的编程领域。

xriantvc

xriantvc2#

这是一个希腊字母,有时候在数学中被用来表示数字或单位向量的集合,在C++中,你得到的是一个构造的向量集合,与itoa无关。

pu82cl6c

pu82cl6c3#

std::iota将用连续递增的值填充迭代器范围。
为了回答你的问题,Iota *(英语发音为“eye-oh-duh”或“eye-oh-tuh”)是一个希腊字母,具有数学含义。
它是C++11的标准,但不是早期的标准。

qncylg1j

qncylg1j4#

噢,我一直以为std::iota(start,end,0)代表

for(size_t i = 0; i < std::distance(start, end) ; i++) { start[i] = i; }

然后你给每个数组元素“赋值i,”iota是希腊语的i,就这样。
(如果这就是@robmayoff的answer中提到的选择APL的理由,我不会感到惊讶,尽管我不知道是否如此。)

rjzwgtxy

rjzwgtxy5#

我引用这一页:iotashaming,您可以在其中找到有关该主题的更多信息。
STL深受肯·艾弗森在APL方面的工作的影响。在肯1979年的图灵奖演讲中,你会发现这句话:
“例如,用ι表示的整数函数产生前N个整数的向量.”

olmpazwi

olmpazwi6#

std::iota-它是一个标准的函数模板,位于<numeric>头文件中(不在<algorithm>中),可从C++11获得。
它对于生成范围[first,last]中递增值(++val)的连续序列非常有用。

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

相关问题