数组初始化语法
array initialisation syntax
我刚刚在代码中遇到这个我不明白它在做什么,或者它是怎么做的它在做什么
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 +=
重载的某个对象(可以是标量或实际类)。
相关文章:
- 初始化对象以在 C++08 中作为参数传递的首选语法是什么?
- 结构初始化语法
- 将任何类型的表达式放在 c++ 的初始化列表中在语法上是否正确?
- C++图形初始化错误(语法或丢失文件缺陷?
- Visual C++ 模板类成员结构初始化语法糖
- 正确的语法,用于在C 中继承,并具有初始化列表和内存分配
- 关于结构初始化语法复杂性的问题
- C++类初始化语法和错误"does not name a type"
- std::array不再发生初始化程序语法错误
- 使用大括号初始化C++对象(语法)
- 嵌套变体的简明初始化语法
- 在构造函数成员初始化之前调用成员函数的语法
- 为什么类数据成员不能通过直接初始化语法初始化?
- 为什么在使用初始化语法时不调用转换运算符,为什么 clang 错误消息看起来是错误的
- 使用大括号初始化列表或传统的 ctor 语法实例化类型
- 在 CUDA 中初始化 dim3 变量,"dim3 dimGrid(numBlocks);"语法如何工作?
- 如何使用C++中的括号语法初始化POD数组
- 如何正确使用初始化语法初始化结构
- 使用 ={} 语法初始化结构时,幕后发生了什么?
- 使用构造函数语法初始化引用