2016-07-23 4 views
0

Я заметил, что контейнеры STL (включая vector, list и т. Д.) Имеют difference_type typedef, который обычно является псевдонимом для std::ptrdiff_t.STL контейнеры 'разность_type typedef

Для чего он предназначен? Он используется любыми функциями-членами?

ответ

1

Используется для вычисления разницы между итераторами. Например cont.end() - cont.begin(). Он не используется напрямую stl container, но широко используется библиотекой итераторов. Пример:

template< class InputIt > 
typename std::iterator_traits<InputIt>::difference_type 
    distance(InputIt first, InputIt last);