|
Tizimli va amaliy dasturlashtirish kafedrasi
|
bet | 6/7 | Sana | 07.12.2023 | Hajmi | 183,4 Kb. | | #112976 |
Bog'liq Ma\'lumotlarMustaqilIshElmurodovSardorbekKetma-ket iteratorlar
Foydalanish (kod qismlari hech qanday bog'liq emas, bu faqat taqdim etilgan operatsiyalarning imzosi):
ForwardIteratorit;// Standart konstruktor, argumentlar yo'q
ForwardIterator it2(it1); // Nusxalash konstruktori, it1 va it2 ekvivalent
it2=it1;// Topshiriq, it1 va it2 ekvivalent
if(it1==it2) {}// Tenglikni tekshirish if
// iteratorlar bir xil pozitsiyaga ishora qiladi,
// yoki ikkalasi ham yakuniy
if(it1!=it2) {...}// Tengsizlikni tekshirish - faqat inkor qilish
// tenglik
it2=++it1;// uni rag'batlantirish1; it2 = yangi qiymat
it2=it1++;// uni rag'batlantirish1; it2 = eski qiymat
Tx=*it1; // Belgilangan elementning qiymatini olish;
// faqat it1 ruxsat bergan taqdirdagina mumkin
// o'qiydi
*it1=x; // Belgilangan elementni o'zgartirish; faqat mumkin
// agar it1 yozishga ruxsat bersa
Sinf skeleti (bu STL-dan iterator sinfining aniq deklaratsiyasi emas, lekin iterator interfeysiga qanday operatsiyalar kiritilganligini tushunishga imkon beradi):
classForwardIterator
{
ommaviy:
ForwardIterator();
// Konstruktorni nusxalash
ForwardIterator(const ForwardIterator &i);
// tayinlash operatori
ForwardIterator& operator =(const ForwardIterator &i);
// B boolga aylantirilishi yoki shunchaki bo'lishi kerak
B operatori ==(const ForwardIterator &i);
B operatori !=(const ForwardIterator &i) {qaytish !(i==*bu);}
// O'sish operatorlari (oldinga, bittaga oshirish).
// Ko'paytirilayotgan iterator to'g'ri bo'lishi kerak.
// Ko'paytirishdan keyin u o'z kuchida qolishi mumkin,
// yoki yakuniy qiymatga ega bo'ling.
// Postfiks operator shakli: x++
// a=x++ bajarilgandan so'ng a x ning eski qiymatiga teng bo'ladi
ForwardIterator operatori ++(int);
// Prefiks shakli: ++x
// a=++x bajarilgandan so'ng, a x ning yangi qiymatiga teng bo'ladi.
ForwardIterator&
|
| |