一个变量怎么可以有两种数据类型?如果“月”是一个变量,它应该从 std::cin 的输入中获取。我应该怎么做才能让用户输入“January”这样的字符串或输入像 1 这样的整数?
在 C++ 17 中,我们得到了名为 std::variant 的东西,它基本上是一个类型安全的联合
要使用它,您只需声明您需要的类型:
std::variant<int, std::string> data;
data = "Hello!";
data = 13;
// No Compilation Issues
困难的部分是当您想要检索数据时
std::string& text = std::get<std::string>(data):
int& number = std::get<int>(data);
但请确保您定义的最后一个内容是您尝试检索含义的类型:
data = 13;
std::string& text = std::get<std::string>(data); // Bad Exception Error
更好的是使用 std::get_if
if (auto temp = std::get_if<std::string>(&data);
std::string& text = *temp; // do what ever you want
我希望这能回答您的问题,祝您编码愉快!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)