Iteratorlar - adapterlar - Oqimni yaratish paytida biriktirilgan istream_iterator obyekti keyingi qiymatni o'qish imkoni bo'lmaganda o'chiriladi va odatiy konstruktor tomonidan yaratilgan obyektga teng bo'ladi, u oqimdan o'qilgan qiymatlar ketma-ketligining oxirini belgilaydigan iterator vazifasini bajaradi.
- back_inserter va istream_iterator obyektlarini birgalikda ishlatish mumkin, masalan, bo'sh joy raqamlari bilan ajratilgan ixtiyoriy uzunlikdagi ketma-ketlikni o'qishni tashkil qilish uchun. Masalan, o'qish cin oqimidan xs konteynerigacha amalga oshiriladi, u tur vektor bo'lishi mumkin <int> (bu yerda quyida tasvirlangan standart algoritm mavjud):
- copy(istream_iterator(cin),
- istream_iterator(), back_inserter(xs));
Iteratorlar - adapterlar - Chiqish oqimi iterator sinfi ostream_iterator > bu basic_ostream obyektiga (xususan, ostream) yozish uchun mo'ljallangan chiqish iteratoridir. Chiqish oqimidagi ko'rsatkichga qo'shimcha ravishda, iterator har bir yozuvdan keyin ko'rsatiladigan CharT * turidagi ko'rsatgichni ajratuvchi satrga saqlaydi (agar ko'rsatgich nolga teng bo'lsa). b oqimida vergul bilan ajratilgan x sonlari ketma-ketligini chiqaring:
- copy(xs.begin(), xs.end(),
- ostream_iterator(cout, ", "));
- E'tibor bering, vergul istalgan bo'lishi mumkin bo'lgan oxirgi raqam chop etilganidan keyin qo'yiladi. Bunday holda, oxirgi element alohida murojaatda ko'rsatilishi kerak.
Standart konteynerlar - Standart konteynerlar ikkita(2) katta guruhga bo'lish mumkin: chiziqli va assotsiativ. O'z navbatida, chiziqli konteynerlarni bog'langan ro'yxatlarga (forward_list va list) va tasodifiy kirish konteynerlariga (deque, vektor va array) bo'lish mumkin.
- Assotsiativ konteynerlar sakkizta(8) konteyner bilan ifodalanadi, ular quyidagi variantlarning kombinatsiyasidir (qavs ichida tegishli standart sinflarning nomlaridan iborat): to'plam (*set) yoki lug'at (*map), elementlarning takrorlanishiga imkon beradigan (*multi*) yoki ruxsat berilmagan, buyurtma qilingan yoki tartibsiz (unordered*).
- Barcha konteynerlarda ichkariga joylashtirilgan iterator va const_iterator turlari mavjud bo'lib, ular mos ravishda o'qish va yozish uchun o'qish iteratorlarini belgilaydi. Konteynerning tarkibini o'z ichiga olgan iteratorlarning qatorini begin va end funktsiyalari (o'qish va yozish uchun iterator), shuningdek cbegin va cend (o'qish uchun const_iterator) yordamida olish mumkin. Ikki tomonlama iterator konteynerlari, shuningdek, reverslar uchun rbegin, rend, crbegin va crend a'zolarining funktsiyalarini ta'minlaydi.
Do'stlaringiz bilan baham: |