c – 创建包含两种不同数据类型或类的向量

我正在尝试创建一个包含int和字符串的向量.这可能吗?

例如,我想要vector< int> myArr来保存字符串x =“Picture This”

解决方法:

你可以使用联盟,但有更好的选择.

您可以使用boost::variant来获得此类功能:

using string_int = boost::variant<std::string, int>;

std::vector<string_int> vec;

要从变体中获取字符串或int,可以使用boost::get

std::string& my_string = boost::get<std::string>(vec[0]);

编辑
嗯,现在是2017年.你不再需要Boost有变种,因为我们现在有std::variant

上一篇:c – 测试一个类是否是多态的


下一篇:用Java扩展类