【发布时间】:2016-02-01 22:27:11
【问题描述】:
我正在尝试创建一个小型概念验证数据库系统,该系统使用表来存储数据。 “表”是列的集合。每列可以有不同的类型。每个表可以有任意数量的列。
理想情况下,我想要这样的东西:
class Table {
map<string, vector<T>> cols; //string is name of col, vector holds data
}
但是,向量的类型必须在编译时知道,所以我不能在同一个映射中有多种类型(vector int、vector double 等)。
我需要吗:
class Table {
map<string, vector<int>> int_cols;
map<string, vector<double>> double_cols;
//etc...
}
对于我希望能够存储的每种类型?
我觉得必须有更好的方法来做到这一点。
【问题讨论】:
-
一个
Column基类怎么样,派生IntColumn、MarineMammalColumn等,而Table包含一个vector<Column*>? -
你能看看Type Erasure吗?
-
可能类似于this