【发布时间】:2017-05-29 06:27:42
【问题描述】:
我在看Two dimensional unordered_map 看到了
typedef std::pair<int,int> Coordinates;
typedef std::unordered_map<Coordinates,void *> TwoDimensionalNodes;
将void* 作为模板的第二个参数是什么意思?
我当然查看了cppreference.com,发现没有提到void。
【问题讨论】:
-
第二个参数是
T- 项目值类型。 -
void*只是一个泛型指针类型,它与unordered_map没有任何关系,它只是在这里用作值类型,就像任何其他类型一样 -
这可能意味着它将保存指向可能不同类型的实例的指针。在使用这些值之前,必须将它们转换回其原始类型。
-
这可能意味着作者未能以类型安全的方式设计它。
标签: c++ templates stl unordered-map