- distance (from, to) funktsiyasi juftlikdan unga va iteratorlarga o'tgan masofani hisoblab chiqadi (o'sish operatorining birinchi iteratorga, ikkinchisiga o'tgunga qadar ishlatiladigan sonlari yoki tasodifiy kirish iteratorlari uchun odatiy farq).
- Ushbu funktsiya mos algoritmni tanlash uchun iterator toifasidan foydalanishning yaxshi namunasidir (bu usul "statik chaqiruvni yuborish" deb nomlanadi). Buni quyidagicha aniqlash mumkin:
namespace std - namespace std
- {
- namespace implementation {
- // Funktsiyaning umumiy versiyasi: chiziqli algoritm,
- // birinchi iteratordan ikkinchisiga o'tish uchun qancha harakatlar qilish kerakligini aniqlaydi.
- // AnyTag har qanday tegni qabul qilishga imkon beradi.
- template
- auto _distance(It from, It to, AnyTag)
- {
- typename iterator_traits::difference_type steps = 0;
- while (from != to)
- {
- ++from;
- ++steps;
- }
- return steps;
- }
Do'stlaringiz bilan baham: |