首页 > 解决方案 > 犰狳矩阵中的多种数据类型

问题描述

我想在犰狳中创建一个矩阵,它可以在一个矩阵中保留不同的数据类型。例如,我想要一个包含三个整数列、一个浮点列和一个具有枚举值的列的矩阵。有什么解决办法吗?

标签: c++matrixarmadillo

解决方案


Armadillo 矩阵在内部将所有元素存储为元素数据类型的标准 C 数组。这意味着所有元素必须具有相同的类型。这对犰狳来说很有意义,因为它旨在用于线性代数和数值计算,而不是作为通用容器。

对于您的特定情况,最好简单地创建分离的对象。例如,您可以创建一个整数矩阵(arma::imat 或 arma::umat,具体取决于您是否需要符号)、一个浮点向量(arma::vec),对于枚举列,您可以使用 std::向量。

然后,您可以创建一个具有三个字段的结构来存储这些对象(或使用元组),如果您总是想将它们保持在一起(例如,轻松地将它们作为参数传递)。


推荐阅读