Fayzullayeva Mohinur 010-19 guruh talabasi
Dasturlash II fanidan Yakuniy nazorat savollari:
10-variant.
1.Iteratorda begin(), end(), cbegin(), cend(), rbegin(), rend(), crbegin() va crend() erkin funksiyalari nimalarini aniqlashi mumkin?
2. Bubble sort (Pufakchali saralash) qanday amalga oshiriladi?
3.Berilgan string turidagi to’plamning 1 ta so’zdan iborat elementlarini o’chiruvchi va 1 ta so’zdan iborat elementidan 2- to’plamni hosil qiluvchi hamda ularni ekranga chiqaruvchi dastur tuzing.
Javoblar:
1. Iteratorda begin(), end(), cbegin(), cend(), rbegin(), rend(), crbegin() va crend() erkin funksiyalarining shablonlarini aniqlash mumkin. Bular bir xil nomli funksiyalarga havola qilinadi, shuningdek, bunday aniqlangan funksiyalar statik massiv va std::valarray uchun aniqlandi. for(:) takrorlanish operatori xuddi shanday shakliga tayanadi. Masalan, cr bir konteyner bo‘lsin (shuningdek, statik massiv ham bo‘lishi mumkin), shunda dasturda for() fragmenti quyidagicha ishlatiladi.
Semantik jihatdan quyidagi fragmentga teng
{
using std::begin;
using std::end;
const auto e = end(cr);
for (auto p = begin(cr); p != e; ++p)
{ T x = *p; work(x); }
}
|
Bu yerda T tipi konteyner elementlarining tipiga mos kelishi shart emas va auto asosida konstruksiya yoki havolali tip ham bo‘lishi mumkin (eng ko‘p ishlatiladigan variantlar auto& va auto&&).
Chiziqli konteynerlarni (array dan boshqa) belgilangan qiymatlardan assign() funksiyasini chaqirib to‘ldirish mumkin (eski qiymalari o‘chiriladi) va resize() funksiyasi bilan o‘lchamlarini (hajmi kamayganda elementlar oxiridan o‘chiriladi va hajmi ortganda, yangi elementlar oxiridan qo‘shiladi) aniqlash mumkin.
Konteynerning birinchi elementiga to‘g‘ridan-to‘g‘ri murojaat (tartiblanmagan assotsiativ konteynerlardan tashqari) front() funksiya yordamida amalga oshiriladi. Iteratorlari ikki tomonlama bo‘lgan barcha konteynerlarning oxirgi elementga murojaat uchun back() funksiyasi, shuningdek, teskari yo‘naltirilgan iteratorlar reverse_iterator va const_reverse_iterator funksiyalaridan foydalaniladi. Tegishli intervallarni rbegin(), rend() i crbegin(), crend() funksiyalari yordamida olish mumkin.
Iteratorlarni olish usullari
begin() birinchi elementga ko‘rsatadi;
end() oxiridan keyingi elementga ko‘rsatadi;
rbegin() teskari ketma-ketlikdagi birinchi elementni ko‘rsatadi;
rend() teskari ketma-ketlikdagi oxirgidan keyingi elementni ko‘rsatadi Elementlarga ruxsat
front() birinchi elementga ilova;
Back() oxiri elementga ilova;
operator[](i) tekshirishsiz indeks bo‘yicha ruxsat;
at(i) tekshirish bilan indeks bo‘yicha ruxsat.
front() birinchi elementga ilova; Elementlarni kiritish usullari
insert(p,x) r ko‘rsatgan elementdan oldin xni qo‘shish
insert(p,n,x) rdan oldin xning n nusxalarini qo‘shish
insert(p,first,last) rdan oldin [first:last]dagi elementlarni qo‘shish
push_back(x) oxiriga xlarni qo‘shish
push_front(x) yangi birinchi elementni qo‘shish (ikta uchga ega bo‘lgan tartiblar va ro‘yxatlar uchun)
Elementlarni o‘chirish usullari
erase(p) r pozitsiyadagi elementni o‘chirish;
erase(first,last) [first:last]dan elementlarni o‘chirish;
pop_back() oxirgi elementni o‘chirish;
pop_front() birinchi elementni o‘chirish (ikta uchga ega bo‘lgan tartiblar va ro‘yxatlar uchun)
O‘zlashtirish usullari
operator=(x) konteynerga x konteynerni elementlari o‘zlashtiriladi;
Do'stlaringiz bilan baham: |