如何从迭代器调度容器类型(序列或关联)?

时间:2012-04-02 08:41:15

标签: c++ stl iterator

请告诉我们如何创建std :: iterator_traits等结构,但是有关容器类型的信息。

1 个答案:

答案 0 :(得分:1)

您所建议的是不可能或没有意义:迭代器特征应用于现有迭代器类型

template <typename Iter> void my_algo(Iter begin, Iter end)
{
     typedef typename std::iterator_traits<Iter>::value_type;
     //  ...                              ^^^^^^
}

由于常见的迭代器不会拥有有关容器的信息,因此在这些特性中添加这样的接口没什么意义:这些特性只是帮助你提取来自某种类型的信息,但您所追求的信息不存在。