Я знаю, что Eigen использует Matrix для представления вектора, но для шаблонного вектора я знаю, что нужно использовать что-то вроде
Eigen::Matrix<T,3,1> v;
Есть ли что-то вроде Eigen::Vector<T,3>
для использования?
Я знаю, что Eigen использует Matrix для представления вектора, но для шаблонного вектора я знаю, что нужно использовать что-то вроде
Eigen::Matrix<T,3,1> v;
Есть ли что-то вроде Eigen::Vector<T,3>
для использования?
Все типы Eigen::Vector являются просто определениями типов. Все стандарты C++ до C++11 не поддерживают шаблонные typedefs (также известные как псевдонимы), а Eigen написан для поддержки более старых стандартов, чем C++11.
Если вы используете C++11, вы можете определить свой собственный шаблонный псевдоним Vector.
template <typename Type, int Size> using Vector = Eigen::Matrix<Type, Size, 1>;
а потом используй как хочешь
Vector<double, 10> vec;
Кстати, у Eigen есть определения типов для размеров векторов от 2 до 4, т. е. Eigen::Vector2d, ..., EigenVector4d. Те же определения типов существуют для чисел с плавающей запятой с суффиксом f
и целым числом i
, а также для комплексных чисел cd
, cf
.