ベクトル型は物体の位置や速度,力などの物理量を表現するために頻繁に使われます. 例えばdouble型の要素からなる3次元ベクトルxを定義するには
Vec3d x;
とします.要素アクセスは[]演算子を用います.
x[0]; // 0-th element
この他,Vec[2][fについては.x, .y, .zでも要素アクセスできます.
任意の固定サイズのベクトルも使えます. float型の10次元ベクトルは
TVector<10, float> x; // 10-dimensional float vector
とします. 可変長ベクトルは
VVector<float> x; x.resize(10); // can be resized at any time
で使えます.
基本的な演算は一通りサポートされています.
Vec3d a, b, c; double k; c = a + b; // addition a += b; c = a - b; // subtraction a -= b; b = k * a; // multiply vector by scalar a *= k; k = x * y; // scalar product x % y; // vector product (3D vector only)
すべてのベクトル型について以下のメンバ関数が使えます.
a.size(); // number of elements a.norm(); // norm a.square(); // square of norm a.unitize(); // normalize b = a.unit(); // normalized vector