首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最佳实践: boost::variants和标准容器

最佳实践: boost::variants和标准容器
EN

Stack Overflow用户
提问于 2011-07-18 02:18:55
回答 3查看 306关注 0票数 2

我正在存储一个值的向量,它可以具有在运行时确定的不同类型。这些值对于每个实例将始终是相同的类型。

哪种做法更好?为什么?

代码语言:javascript
复制
std::vector< boost::variant<int, std::string, double> > values;

代码语言:javascript
复制
boost::variant< std::vector<int>, std::vector<string>, std::vector<double> > values;
EN

回答 3

Stack Overflow用户

发布于 2011-07-18 02:22:19

前者,因为它省去了输入,而且更灵活;您的规格可能会发生变化。

后者,因为它提供了更强的保证,在内存使用方面更紧凑,因此可能更快。

根据你的需要来挑选。

票数 2
EN

Stack Overflow用户

发布于 2011-07-18 02:27:02

如果所有这些实例总是相同的类型,那么选择第二个。它在语义上和直接上更有效。

票数 1
EN

Stack Overflow用户

发布于 2011-07-18 02:22:37

代码语言:javascript
复制
std::vector<BaseClass*> values;

为什么要重新发明多态性呢?

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6725785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档