2

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

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

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

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

有什么帮助吗?谢谢

4

2 回答 2

7

使用std::iterator_traits

template<class ITR>
void f(ITR begin, ITR end)
{
    typename std::iterator_traits<ITR>::value_type temp = *begin;
}
于 2013-08-27T13:44:32.410 回答
3
typedef typename std::iterator_traits<ITR>::value_type value_type;
于 2013-08-27T13:44:22.220 回答