我的问题基于以下链接:
http://www.cplusplus.com/reference/vector/vector/
会员类型(value_type
,allocator_type
等)的实际含义是什么?
我在很多教科书中都搜索过这个,但没有人以明确的方式定义和解释。
请问,有人可以借助示例或明确的链接来解释它吗? 提前谢谢。
答案 0 :(得分:1)
它们是typedef
到模板化容器正在使用的相应类型。
例如,value_type
对应于向量可以容纳的元素的类型。因此std::vector<int>::value_type
为int
,std::vector<float>::value_type
为float
。
当容器的类型本身未知时,将常用类型作为容器上的类型可用是很有用的。例如,某人可能希望编写与std::map
和std::unordered_map
同样有效的库代码:
template<typename TMap>
void insert_default_pair(TMap& map)
{
map.emplace(typename TMap::key_type(), typename TMap::mapped_type());
}