数组初始化语法

array initialisation syntax

本文关键字:语法 初始化 数组      更新时间:2023-10-16

我刚刚在代码中遇到这个我不明白它在做什么,或者它是怎么做的它在做什么

pos[iter](1) += 12.0f / 900.0f;

(1)是否将位置iter处的数组值初始化为1,然后添加(12.0f/900.0f) ?我简直不敢相信,因为它在循环中用于设置调试文本的位置,每个循环将下一行设置为高y值(屏幕上的较低点)。Iter可以是0或1,这取决于调试文本在哪个列表中。

如果这是一个静态操作,我可以理解。
pos[iter](1) += 12.0f / 900.0f;

pos可以是数组、映射或重载operator[]的类的对象。pos[iter]返回一个对象(可以是函数指针,lambda或具有重载operator()的类),并以参数1调用它。函数调用很可能返回对返回对象的引用,因为您可以使用+=更改其值。

所以为了说清楚,(1)没有访问任何元素的第二个元素。它只是一个带有该参数的函数或方法的调用。该方法返回具有适当的operator +=重载的某个对象(可以是标量或实际类)。