1-Savol: Dasturda nechta global funksiya yaratilgan?
Javob : Ushbu dasturda 2 ta global funksiya yaratilgan:
1. cmerge() funksiyasi
2. myPrint() funksiyasi
3. myPrintmultiset() funksiyasi
cmerge() funksiyasi generik funksiya bo'lib, ikki konteynerning elementlarini birlashtirib, yangi konteyner qaytaradi.
myPrint() funksiyasi unordered_set konteynerining elementlarini chop etadi.
myPrintmultiset() funksiyasi unordered_multiset konteynerining elementlarini chop etadi.
Bu funksiyalar dasturning boshqa qismlarida ishlatiladigan bo'lib, dasturning funktsionalligi oshirilishiga xizmat qiladi.
2-Savol : Dasturda nechta unordered_set to‘plam mavjud?
Javob : Ushbu dasturda 3 ta unordered_set to'plam mavjud:
1. myset - unordered_set
2. myset_str - unordered_set
3. myset_one - unordered_set
Bu to'plamlar quyidagi joylarda yaratilgan:
unordered_set myset, myset_str;
unordered_set myset_one;
Shuningdek, dasturda yana 3 ta unordered_multiset to'plam ham mavjud:
1. first - unordered_multiset
2. second - unordered_multiset
3. third - unordered_multiset
Ular quyidagi qatorda yaratilgan:
unordered_multiset< string> first, second, third;
Demak, ushbu dasturda jami 6 ta to'plam (3 ta unordered_set va 3 ta unordered_multiset) mavjud.
3-savol : Dasturda myPrint(myset_one) funksiyasi chaqirilganda natija qanday bo‘ladi va nima
Sababdan ?
Javob :
Dasturda myPrint(myset_one) funksiyasi chaqirilmagan, chunki myset_one konteynerida satr tipidagi elementlar yo'q. myPrint() funksiyasi unordered_set konteynerining elementlarini chop etishga mo'ljallangan.
Agar myPrint(myset_one) funksiyasi chaqirilsa, kompillyator xatosi yuzaga keladi, chunki funksiya parametri unordered_set& bo'lsa-da, myset_one konteynerida int tipidagi elementlar bor.
Kompillyator quyidagi kabi xatoni beradi:
error: no matching function for call to 'myPrint(std::unordered_set&)'
myPrint(myset_one);
^
note: candidate: void myPrint(unordered_set& myset)
void myPrint(unordered_set& myset) { for (const string& x : myset) cout << " " << x; cout << endl;}
^
note: no known conversion for argument 1 from 'std::unordered_set' to 'unordered_set&'
Bu xato myPrint() funksiyasi unordered_set konteynerini kutayotgani, lekin myset_one unordered_set konteynerini berganligidan kelib chiqadi.
Agar dasturchi myPrint() funksiyasini unordered_set konteynerini qabul qilishi uchun o'zgartirsa, u holda myset_one konteynerining elementlari chop etiladi.
|