std::map存储 typeid
时间: 2024-04-10 11:25:19 浏览: 200
std::map是C++标准库中的一个关联容器,它提供了一种键值对的存储方式。在std::map中,每个元素都是一个键值对,其中键是唯一的,而值可以重复。std::map内部使用红黑树实现,因此它具有自动排序的特性。
typeid是C++中的一个运算符,用于获取一个表达式的类型信息。它返回一个std::type_info对象,该对象包含有关类型的信息,例如类型的名称。typeid运算符通常与std::map一起使用,以将类型作为键存储在std::map中。
下面是一个示例代码,展示了如何使用std::map存储typeid:
```cpp
#include <iostream>
#include <map>
#include <typeinfo>
int main() {
std::map<std::type_index, std::string> typeMap;
typeMap[typeid(int)] = "integer";
typeMap[typeid(double)] = "double";
typeMap[typeid(std::string)] = "string";
std::cout << "Type of int: " << typeMap[typeid(int)] << std::endl;
std::cout << "Type of double: " << typeMap[typeid(double)] << std::endl;
std::cout << "Type of std::string: " << typeMap[typeid(std::string)] << std::endl;
return 0;
}
```
输出结果:
```
Type of int: integer
Type of double: double
Type of std::string: string
```
阅读全文