C++ 11中多种数字类型的向量

Ort*_*x92 1 c++ boost vector c++11

在C++ 11中有一种有效的方法可以使用向量存储多个数值类型std::vector吗?我能找到的大多数也存储字符串而不存储字符串.我只想存储8到32位的有符号和无符号整数.

到目前为止,我遇到过,boost::variant但这似乎有点矫枉过正.我错过了一个巧妙的技巧吗?或者我应该选择加强?

我想做这样的事情:

std::vector<Numeric> v{(uint16_t) 1, (int32_t)-200};

Bau*_*gen 5

不.C++中没有通用的数字类型.

首先,要处理您的具体情况:如果您的内存不足,我们std::vector<std::int64_t>将很乐意保护您的所有数据并且速度非常快.您不太可能需要其他任何东西.

除此以外:

如果您需要速度(即在通用解决方案证明速度变慢之后),请选择能够满足您需求的单一类型.

如果速度不那么重要(即你不能证明任何显著的缺点),如通用的解决方案boost.variant,并boost.any会满足你的需要.