矢量类型
矢量是一种数据类型,包含一到四个 标量 组件。 矢量的每个组件都必须具有相同的类型。
类型声明
可以使用 标量类型来声明矢量变量 包含的组件数的矢量内容的名称:
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