在C ++ 11中是否有一种有效的方法来使用来将多个数字类型存储在向量中std::vector
?我所能找到的大多数内容还存储字符串,什么都不存储。我只想存储8到32位的有符号和无符号整数。
到目前为止,我遇到过,boost::variant
但这似乎有点过分了。我错过了一个巧妙的技巧吗?还是我应该增强一下?
我想做这样的事情:
std::vector<Numeric> v{(uint16_t) 1, (int32_t)-200};
没有。C ++中没有通用的数值类型。
首先,处理您的特定情况:如果您的内存没有用尽,那么std::vector<std::int64_t>
它将很高兴地保护您的所有数据,并且速度非常快。您不太可能需要其他任何东西。
否则:
如果您需要速度(即在通用解决方案证明速度变慢之后),请选择一种可以满足您需求的类型。
如果速度不那么重要(即你不能证明任何显著的缺点),如通用的解决方案boost.variant
,并boost.any
会满足你的需要。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句