默认构造函数总是可用的,从不执行任何动态内存分配,也从不初始化矩阵系数
Matrix3f a;
MatrixXf b;
在这里,
a是一个3×3矩阵,带有一个未初始化系数的普通浮点]数组,
b是一个动态大小的矩阵,它当前的大小是0乘0,它的系数数组还没有被分配。
也可以使用具有大小的构造函数。对于矩阵,总是先传递行数。对于向量,只需传递向量的大小。他们分配的给定的大小系数数组,但不初始化的系数本身:
Matrix3f a(3,3);
为了在固定大小和动态大小的矩阵之间提供统一的API,在固定大小的矩阵上使用这些构造函数是合法的,即使在这种情况下传递大小是无用的。所以这是合法的:
Vector2d a(5.0, 6.0);
Vector3d b(5.0, 6.0, 7.0);
Vector4d c(5.0, 6.0, 7.0, 8.0);