template struct iterator_traits{
typedef ptrdiff_t difference_type;
typedef T value_type;
typedef T* pointer;
typedef T& reference;
typedef random_access_iterator_tag iterator_category;
};
Екі нұсқауыштың айырмасы
файлында анықталған стан-
дартты
ptrdiff_t
типінде болады. Осыған ұқсас шаблон специализациясы
const T*
типі үшін де енгізілген.
Тек кездейсоқ қол жеткізу итераторлары ғана
+
жəне – операцияларын
сүйемелдейтін болғандықтан, кітапханада
distance
жəне
advance
функ-
циялары сипатталған.
distance
функциясы контейнер элементтерінің
арасындағы қашықтықты анықтау үшін қолданылады:
distance(InputIterator fi rst, InputIterator last);
Бұл екі итератордың арасындағы айырманы көрсететін
difference_type
типті мəн қайтарады. Бұл функция кездейсоқ қол жеткізу итераторларынан
басқа барлық итераторлар үшін
++
операциясының көмегімен контейнер
элементтерінің арасындағы қашықтыққа пропорционал уақыт ішінде орында-
лады, яғни ол айтарлықтай ресурс көлемін жұмсайды.
advance
функциясы да
осыған ұқсас жұмыс түрін атқарады, ол
i += n
операциясын жүзеге асыру
үшін қолданылады:
Достарыңызбен бөлісу: |