矢量类型

矢量是一种数据类型,包含一到四个 标量 组件。 矢量的每个组件都必须具有相同的类型。

类型声明

可以使用 标量类型来声明矢量变量 包含的组件数的矢量内容的名称:

TypeComponents Name

其中 Type 是每个组件 标量类型,Components 是介于 1 和 4 之间的常量整数表达式,指示组件数和 Name 是唯一标识变量名称的 ASCII 字符串。

例子:

int     iScalar;     // integer scalar
int1    iVector = 1; // vector containing one integer
float3  fVector = { 0.2f, 0.3f, 0.4f }; // vector containing three floats

模板样式声明

备用声明语法使用 vector 关键字和模板参数来指示标量类型和组件数:

vector <Type=float, Components=4> Name

如果再次 Type 是每个组件的标量类型,Components 是一个介于 1 和 4 之间的整数,表示组件的数量,但它们在模板样式尖括号中指定。 Name 是唯一标识变量名称的 ASCII 字符串,

请注意,模板参数默认值允许通过关闭最后一个参数或 4 分量的浮向量来指定给定类型的 4 个分量向量,方法是同时关闭这两个参数。

下面是一些示例:

vector <int,    1> iVector = 1;
vector <double, 4> dVector = { 0.2f, 0.3f, 0.4f, 0.5f };
vector <float16_t> hVector = { 0.1f, 0.2f, 0.3f, 0.4f };     // Defaults to 4-component float16 vector
vector             fVector = { -0.4f, -0.3f, -0.2f, -0.1f }; // Defaults to 4-component float vector

另请参阅

数据类型 (DirectX HLSL)