【发布时间】:2010-02-18 14:17:18
【问题描述】:
假设我想创建一个模板函数,它返回任何 stl 容器的第一个元素。一般的方法是:
template<typename Container>
Container::value_type first(Container c){
return *(c.begin());
}
这适用于向量、列表、双端队列、集合等。
但是,对于配对关联容器(std::map),如果想拥有
return c.begin()->second;
如果我有一对关联容器,我该如何测试(在函数中或使用模板特化)?
STL 容器似乎没有附加任何特征。是否可以检查它是否有 ::key_type ?
【问题讨论】: