c++ - 如果数据类型未知,如何打印 void 指针的值?
问题描述
假设有人让我实现打印功能来打印键的值。这里有两个键在参数中给出,分别是键和键 1。如果我知道 void 指针指向的数据类型,我可以按照以下方式打印。但是,如果我不知道数据类型,我将如何打印?
void Print(map<string , void*>&mp,string key,string key1) {
auto res =mp[key];
auto res1 =mp[key1];
cout<<*(string*)res<<endl;
cout<<*(int*)res1<<endl;
}
为澄清起见,主要功能如下。
int main(){
map<string , void*>mp;
string *val = new string("val");
mp["key"]=val;
int *value = new int(5);
mp["key1"]=value;
Print(mp,"key","key1");
return 0;
}
解决方案
但是,如果我不知道数据类型,我将如何打印?
无法仅从void*
. 你将不得不找到另一种方法。
推荐阅读
- python - 什么数据结构允许多键访问,甚至是其他键?
- node.js - sequelize 中的 DataType 有什么作用?为什么在参数中传递它并在没有定义它的情况下运行?
- flutter - 如何在脚手架小部件的 AppBar 下方而不是下方显示正文?
- c++ - 在单臂霓虹灯寄存器中有效地将 8 位数字扩展到 12 位
- react-native - React Native 安装对我不起作用
- python - 战争纸牌游戏模拟器中的无限循环
- mysql - 使用 SQL 查询具有不同 RDBMS 的数据库
- c# - 如何为 bot builder sdk bot 设置 LuisModel
- c# - 如何在单个事务中重用从实体框架返回的 ID
- apache-spark - Spark 数据集的 Avro Schema 与 Scala 案例类