本节介绍的也是c++17中的新特性variant,用来处理单一变量存放多种数据类型。大致意思是我们不用关心变量的具体类型,在之后用的术后在考虑变量的具体类型。
#include <iostream>
#include <string>
#include <variant>
int main()
{
std::variant<std::string, int> data;//提前列出data的所有可能类型
data = "pcop";
//获取data的值方式
std::get<std::string>(data);
data = 3;
std::cin.get();
}
和联合体不同的是,联合体的内存大小是所有成员中最大的内存大小,而variant则表示当前所有类型加起来的大小。类似结构体。