2014-08-28 95 views
0

我正在寻找从多行和多列数据表中存储信息。每列包含不同的类型(int,double,std::string等),只有在运行时才能知道。在C++中boost :: variant的二维矢量

是2-d vectorboost::variant最好的方法,还是有更好的存储机制来完成这个?

+2

一个你正准备存储的例子会很有帮助。如果你的意思是存储单行,每列有多个不同的数据类型,'boost :: tuple'可能是更好的选择。 – mstrthealias 2014-08-28 18:37:51

回答

2

从你的问题来看,它并不清楚你实际上在寻找什么。答案取决于多种因素:

  • 假设你每列不同的类型,有如下类型同样为 所有行?

  • 在编译时或只在运行时已知类型吗?

在类型的简单的情况下在编译时是已知的和是相同的所有行,为什么不干脆用一个自定义的类来表示一列或std::tuple

如果不同列之间的类型不同,则必须使用全能型,如boost::any。 只有在运行时才能知道类型,这也可能是最简单的解决方案。