一个模板函数,它接受迭代器或指针并获取指向的类型

时间:2013-08-27 13:42:16

标签: c++

不幸的是我没有使用C ++ 11(然后我会使用auto)。

假设我有类似下面的函数(非常简单的例子)

template<class ITR>
void f(ITR begin, ITR end)
{
    TYPE temp = *begin;
}

我想在迭代器中存储局部变量中的一些临时值,但我不知道如何获取TYPE。此外,该函数将使用std迭代器和原始指针调用。

有任何帮助吗?感谢

2 个答案:

答案 0 :(得分:7)

使用std::iterator_traits

template<class ITR>
void f(ITR begin, ITR end)
{
    typename std::iterator_traits<ITR>::value_type temp = *begin;
}

答案 1 :(得分:3)

typedef typename std::iterator_traits<ITR>::value_type value_type;