0

我正在尝试查找任何类型向量的元素的数据类型。

我尝试了以下代码:

#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

如您所见,intandbool被正确识别,但字符串类型返回其他内容。此外,所有复杂的 C++ 数据结构以及向量和映射等都会发生这种情况。有没有办法检测特定的数据类型?

list我的最终目标是在 python中实现自定义向量数据类型,例如 a 。具有基本的推送和获取功能。

4

0 回答 0