stl容器中成员类型的含义是什么?
what is meaning of member types in stl container?
我的问题基于以下 link:
http://www.cplusplus.com/reference/vector/vector/
成员类型(value_type
、allocator_type
等)的实际含义是什么?
这个我在很多教科书上都找过,但是没有一个明确的定义和解释。
拜托,任何人都可以通过示例或清晰的方式解释一下吗link?
提前致谢。
它们 typedef
是模板化容器正在使用的相应类型。
例如value_type
对应的是vector所能容纳的元素类型。所以 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());
}
我的问题基于以下 link:
http://www.cplusplus.com/reference/vector/vector/
成员类型(value_type
、allocator_type
等)的实际含义是什么?
这个我在很多教科书上都找过,但是没有一个明确的定义和解释。
拜托,任何人都可以通过示例或清晰的方式解释一下吗link? 提前致谢。
它们 typedef
是模板化容器正在使用的相应类型。
例如value_type
对应的是vector所能容纳的元素类型。所以 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());
}