我正在尝试查找任何类型向量的元素的数据类型。
我尝试了以下代码:
#include <any>
#include <iostream>
#include <string>
#include <vector>
int main()
{
std::vector<any> myList;
myList.push_back(std::string("Hello"));
myList.push_back(3);
myList.push_back(true);
std::any t1 = "Hello";
std::any t2 = 3;
std::any t3 = true;
std::cout<<t1.type().name()<<endl;
std::cout<<t2.type().name()<<endl;
std::cout<<t3.type().name()<<endl;
std::cout<<myList[0].type().name()<<endl;
std::cout<<myList[1].type().name()<<endl;
std::cout<<myList[2].type().name()<<endl;
return 0;
}
输出如下:
PKc
i
b
NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
i
b
如您所见,int
andbool
被正确识别,但字符串类型返回其他内容。此外,所有复杂的 C++ 数据结构以及向量和映射等都会发生这种情况。有没有办法检测特定的数据类型?
list
我的最终目标是在 python中实现自定义向量数据类型,例如 a 。具有基本的推送和获取功能。