如何访问float3的第n项

时间:2014-03-15 14:38:34

标签: c++

我不熟悉C ++语法,但需要编写一些基本的代码行。

float3 myValue = (1.0f,2.0f,3.0f);
float output = myValue[0];
print(output);

此代码将返回3.0而不是1.0,正如我所期望的那样。 所以我的问题是如何获得float3的第n项?

2 个答案:

答案 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::vectorstd::array