boost::C++中的变体的二维矢量

2-D vector of boost::variant in C++

本文关键字:二维 C++ boost      更新时间:2023-10-16

我希望从具有多行和多列的数据表中存储信息。每列包含不同的类型(intdoublestd::string等),这些类型只有在运行时才知道。

boost::variant的二维vector是最好的方法吗?或者有更好的存储机制来实现这一点吗?

从您的问题来看,还不清楚您到底在寻找什么。答案取决于各种因素:

  • 假设每列有不同的类型,那么对于所有行?

  • 类型是在编译时已知的还是仅在运行时已知的?

在编译时已知类型并且所有行的类型都相同的最简单情况下,为什么不简单地使用自定义类来表示列或std::tuple呢?

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