小编Ris*_*rti的帖子

为什么在模板函数中使用iterator_traits而不是仅使用另一个模板类型参数?

例如,参考cplusplus.com的这个片段:

template <class InputIterator, class T>
typename iterator_traits<InputIterator>::difference_type
count(InputIterator first, InputIterator last, const T& val)
{
    typename iterator_traits<InputIterator>::difference_type ret = 0;
    while (first!=last) {
        if (*first == val)
            ++ret;
        ++first;
    }
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

问题是为什么iterator_traits在这个上下文中使用而不是接受另一个模板参数,如下所示:

template <class InputIterator, class T, class DiffType>
DiffType count(InputIterator first, InputIterator last, const T& val)
{
    DiffType ret = 0;
    while (first!=last) {
        if (*first == val)
            ++ret;
        ++first;
    }
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

c++ templates stl iterator-traits

3
推荐指数
1
解决办法
247
查看次数

使用伪类选择器来改变内容?

如何<p>使用CSS的伪类选择器更改标记中包含的文本?

例如,当我将鼠标悬停在段落上时,段落的内容必须更改为p:hover选择器中指定的内容.

css css3

1
推荐指数
1
解决办法
549
查看次数

标签 统计

c++ ×1

css ×1

css3 ×1

iterator-traits ×1

stl ×1

templates ×1