在一个变量中存多种类型的数据

是什么:
包含< variant >

std::variant

允许列出变量所有的可能的类型,然后决定它是什么类型

代码示例:

int main()
{
 std::variant<std::string,int> value;
value="Hello";
value=4;
value.index(0);//类型索引,会把类型映射到索引上0,1;会取到"Hello"
}
std::get<int>(value);//提取数据

std::get_if< std::string>(variant类型参数)

//获取当前数据类型作为字符串 会返回一个指针;

std::any

可以存任何的类型;

std::any data;
data=7;
data="Hello";
std::any_cast<std::string>(data);//读取当前模版类的类型,若不是会抛出异常

std::any和std::variant的区别

std::any会动态的分配空间
std::variant 静态分配 效率高;

数据提取

variant.index(索引值)//类型索引,会把类型映射到索引上0,1;
std::get< int>(value)//以模版类型提取;
std::any_cast< std::string>(data);//读取当前模版类的类型,若不是会抛出异常

posted @   Wzline  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示