请告诉我们如何创建std :: iterator_traits等结构,但是有关容器类型的信息。
答案 0 :(得分:1)
您所建议的是不可能或没有意义:迭代器特征应用于现有迭代器类型:
template <typename Iter> void my_algo(Iter begin, Iter end)
{
typedef typename std::iterator_traits<Iter>::value_type;
// ... ^^^^^^
}
由于常见的迭代器不会拥有有关容器的信息,因此在这些特性中添加这样的接口没什么意义:这些特性只是帮助你提取来自某种类型的信息,但您所追求的信息不存在。