具有不同值类型模板参数的模板类的 C++ 数组或 vector

标签 c++ templates vector value-type

一个应用程序需要处理一组可以执行某些操作的数据集。每个数据集都包含一个特定数据类型(int32、int16、float、complex)的点数组,并且可以对每个数据集中包含的数据执行相同的操作。例如傅立叶变换或滤波器。因此,在数据模型(用于模型- View - Controller 模式)中,我想存储开放数据集的集合,每个数据集都有自己的数据类型。

正在关注 How to put different template types into one vector , 要放置具有不同类型参数的模板类,可以使用继承或提升变体。

我想避免使用变体,我想保留值类型。

我想要的是存储具有不同模板参数的类的 vector (如果可能的话,数组会更好):

    template < typename T >
    class DataSet {
      private:
      T data;
      // ...
       public:
      T getData() {return data;}
    };

    std::vector< DataSet< something > > v;
    v.push_back( DataSet<int32_t*>() );
    v.push_back( DataSet<float*>()   );
    v.push_back( DataSet<int16_t*>() );

执行此操作的正确方法是什么?或者处理一组具有不同值类型的对象,我可以在这些对象上执行相同的操作?

最佳答案

如果有固定范围,可以使用boost::variant,否则考虑boost::any

关于具有不同值类型模板参数的模板类的 C++ 数组或 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25034400/

相关文章:

c++ - 如何使用标准跨度进行边界检查?

javascript - 根据浏览器/javascript 中的模板创建新的 Word 文档

r - 如何将矩阵的每一行除以R中向量的元素

c++ - 具有重复数据的自定义对象的 std::vector 上的 std::find_if

c++ - 使用 const integer 声明数组

c++ - 如何使用 lower_bound 将值插入排序 vector

c++ - 在屏幕上查找图像

php - 从 newegg 获取商品价格

c++ - 我似乎无法修复的意外错误

r - 选择向量中除 dplyr 管道中的一个元素之外的所有元素