我正在存储一个值的向量,它可以具有在运行时确定的不同类型。这些值对于每个实例将始终是相同的类型。
哪种做法更好?为什么?
std::vector< boost::variant<int, std::string, double> > values;或
boost::variant< std::vector<int>, std::vector<string>, std::vector<double> > values;发布于 2011-07-18 02:22:19
前者,因为它省去了输入,而且更灵活;您的规格可能会发生变化。
后者,因为它提供了更强的保证,在内存使用方面更紧凑,因此可能更快。
根据你的需要来挑选。
发布于 2011-07-18 02:27:02
如果所有这些实例总是相同的类型,那么选择第二个。它在语义上和直接上更有效。
发布于 2011-07-18 02:22:37
std::vector<BaseClass*> values;为什么要重新发明多态性呢?
https://stackoverflow.com/questions/6725785
复制相似问题