C++单一变量存放多种类型的数据
本文最后更新于:2022年3月19日 凌晨
此文来源于👉 【77】【Cherno C++】【中字】单一变量存放多种类型的数据_哔哩哔哩_bilibili
用来处理可能存在也可能不存在的数据,也可能是与我们预期不同的类型。当然也不一定,而是让我们存储不同的数据。std::variant
的作用是让我们不用担心处理的确切类型,指定一个std::variant
的东西,然后列出他可能的数据类型。
例子:
#include <iostream>
#include <variant>
int main(void)
{
std::variant<std::string, int> data;
data = "Cherno";
std::cout << std::get<std::string>(data) << '\n';
data = 2;// data被重新赋值为2
std::cout << std::get<int>(data) << '\n';
data.index();// index函数会告诉你类型的索引, 此时会打印1。
if (auto value = std::get_if<int>(&data))
{
std::string&v = *value;
}
else
{
//...
}
/*
std::cout << std::get<std::string>(data) << '\n';
错误的访问方法,在data被置为int后依旧按照std::string访问,会抛出一个
bad variant access异常
*/
std::cin.get();
return 0;
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!