c++ - C++ 创建一个存储不同类型名的向量
问题描述
我想创建一个存储数据类型名称的向量(int、char、bool 等)
我正在寻找类似的东西:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(int argc,char** argv)
{
vector<typenames> v = {int,float,double,bool};
}
解决方案
如果您要存储的类型有限,则可以使用<variant>
,例如
#include <variant>
using VarType = std::variant<int, float, double, bool>;
std::vector<VarType> v;
v.push_back(42);
assert(std::holds_alternative<int>(v.front()));
assert(std::get<int>(v.front()) == 42);
v[0] = true;
assert(std::holds_alternative<bool>(v.front()));
assert(std::get<bool>(v.front()));
请注意,如果 C++17 不可用,您可以使用Boost variant。
推荐阅读
- swift - 使用 zpl (Zebra ZQ620) 打印时蓝牙连接经常断开
- git - 由于缺少正斜杠而导致 git 命令出现问题
- c# - ASP.NET:异步操作行为不异步
- sharepoint - 错误 - [tsc] 错误:找不到模块 '@microsoft/rush-stack-compiler-3.2' - 在 SharePoint 框架 Web 解决方案中运行 gulp serve 命令时
- python - 使用 os.rename 移动文件的问题
- java - Java OutStreamWriter 到 ByteArrayInputStream
- mysql - 需要指导编写 MySQL 触发器
- android - 如何让我的新 Google 网站上的图片可以轻松下载到手机/平板电脑上?
- r - R中变量的反转符号
- python - 为什么我的 DQN(Deep Q Network)不学习?