我不熟悉C ++语法,但需要编写一些基本的代码行。
float3 myValue = (1.0f,2.0f,3.0f);
float output = myValue[0];
print(output);
此代码将返回3.0而不是1.0,正如我所期望的那样。 所以我的问题是如何获得float3的第n项?
答案 0 :(得分:1)
看起来您正在尝试从类型float3
构造对象。如果没有该类型的细节,我只能推测该类型有一个带三个浮点数的构造函数,所以所需的语法是
float3 myValue(1.0f,2.0f,3.0f);
否则,如果您使用float
的3号数组,则可以这样定义:
float myValue[3] = {1.0f, 2.0f, 3.0f};
请注意,C ++标准库为您提供了一个方便的数组容器std::array
,它可以复制,可分配,并且更容易使用:
std::array<float, 3> myValue{1.0f, 2.0f, 3.0f};
答案 1 :(得分:1)
很可能你想要一个包含3个浮点数的数组,但是你试图用三个float3
来创建它。
使用它的构造函数创建float3
(如果已定义):
float3 myValue( 1.0f, 2.0f, 3.0f); // assigns 3 floats to float3
或者您创建一个3 float
s:
float myValue[3] = { 1.0f, 2.0f, 3.0f};
现在你可以使用
float output = myValue[0]; // to get first element of the container of 3 floats
定义
float myValue = (1.0f,2.0f,3.0f);
仅将最后一个表达式赋值给变量,因为在 C ++ (和C)the comma is a binary operator中计算其第一个操作数并丢弃结果,然后计算第二个操作数并返回该值(并输入)。
请注意,您可以考虑使用高效,专业的标准容器来简化处理内存
std::vector
或std::array