Dasturlash II 7-hafta mavzu: shablonlar, vektorlar va steklar


size() funksiyasi turi unsigned



Yüklə 128,5 Kb.
səhifə4/5
tarix28.01.2023
ölçüsü128,5 Kb.
#122699
1   2   3   4   5
Dasturlash II 7-hafta mavzu shablonlar, vektorlar va steklar

size() funksiyasi turi unsigned (int emas) bo`lgan vektor o`lchamini qaytaradi. Ba’zi kompilyatorlar i o`zgaruvchida ishorasiz qiymat o`rniga ishorali qiymat ishlatilganligi haqida ogohlantirishi mumkin (16-, 29-, 40-qatorlar). Bu shunchaki ogohlantirish va bunda hech qanday muammo sodir bo`lmaydi, chunki ishorasiz qiymat avtomatik tarzda ishorali qiymatga ko`chiriladi.
Ogohlantirishning oldini olish uchun, 16-qatorda, i o`zgaruvchini unsigned int sifatida, quyidagicha ko`rinishda e’lon qilinishi kerak:
for (unsigned i = 0; i < intVector.size(); i++)


7.3. vector sinfidan foydalanib massivlarni almashtirish
Key Point. Vektordan massivlarni almashtirishda foydalanish mumkin. Vektorlar massivlarga nisbatan ko`proq qayishuvchan, biroq, massivlar vektorlarga qaraganda samaraliroqdir.
vector ob’yekt xuddi massivdek ishlatilishi mumkin, ammo ba’zi farqlar mavjud. 7.1-jadvalda ularning o`xshash va farqli jixatlari keltirilgan.
7.1-jadval. Massivlar va vector o`rtasidagi o`xshashliklar va farqli jixatlar.

Amallar

Massiv

Vector

Massiv/vektorni yaratish

string a[10]

vector v

Elementga murojaat

a[index]

v[index]

Elementga qiymat berish

a[index] = "London"

v[index] = "London"

Hajmni qaytarish




v.size()

Yangi element qo`shish




v.push_back("London")

Elementni o`chirish




v.pop_back()

Barcha elementlarni o`chirish




v.clear()

Vektorlar va massivlarning har ikkalasi ham elementlar ro`yxatini yozish uchun ishlatiladi. Agar ro`yxat hajmi o`zgarmas bo`lsa, massivdan foydalanish samaraliroq. Vektor esa, hajmi o`zgaruvchan massivdir. vector sinfi vektorga murojaat qilish va unga ishlov berishga mo`ljallangan ko`plab a’zo funksiyalarga ega. Massivlarga nisbatan vektorlarni ishlatish ko`proq qayta sozlash imkoniyatlarini beradi. Umuman olganda, massivlarni almashtirish uchun har doim vektorlardan foydalanishimiz mumkin. Bundan keyingi barcha ma’ruzalarda vektorlar yordamida qayta ishlov berish mumkin bo`lgan massivlardan foydalanishga oid misollar beriladi.
O`tgan semestrda o`rganganimiz – ikki o`lchovni massivga yuborish masalasiga oid dastur kodini qarab chiqamiz.
7.3-kodli ro`yxat. KartaDastasi.cpp
1 #include
2 #include
3 #include
4 using namespace std;
5
6 int main()
7 {
8 const int KARTALAR_SONI = 52;
9 int dasta[KARTALAR_SONI];
10 string moslik[] = {"Qarg`a", "Tappon", "G`isht", "Chillak"};
11 string raqamlar[] = {"Tuz","2","3","4","5","6","7","8","9",
12 "10","Valet","Dama","Qirol"};
13
14 // Boshlang`ich kartalar
15 for (int i = 0; i < KARTALAR_SONI; i++)
16 dasta[i] = i;
17
18 // Kartalarni aralashtirish
19 srand(time(0));
20 for(int i = 0; i < KARTALAR_SONI; i++)
21 {
22 // Tasodifiy indeksni generatsiyalash
23 int index = rand() % KARTALAR_SONI;
24 int temp = dasta[i];
25 dasta[i] = dasta[index];
26 dasta[index] = temp;
27 }
28
29 // Birinchi to`rtta kartani ko`rsatish
30 for (int i = 0; i < 4; i++)
31 {
32 string mos_kelish = moslik[dasta[i] / 13];
33 string raqam = raqamlar[dasta[i] % 13];
34 cout << dasta[i] <<" – karta: " << mos_kelish
35 << ", karta raqami: "<< raqam << endl;
36 }
37
38 return 0;
39 }

6 - karta: Qarg`a, karta raqami: 7
48 - karta: Chillak, karta raqami: 10
11 - karta: Qarg`a, karta raqami: Dama
24 - karta: Tappon, karta raqami: Dama

Dastur 52 ta karta uchun dasta massivini aniqlaydi (9-qator). 15-16-qatorlarda dasta massiviga 0 dan 51 gacha bo`lgan qiymatlar yuklanadi. dasta ning 0 qiymati tuz qarg`ani beradi, 1 qiymati 2 qarg`ani beradi, 13 qiymati tuz tapponni, 14 esa, 2 tapponni taqdim etadi. 20-27-qatorlarda dasta tasodifiy aralashtiriladi. Dasta tasodifiy aralashtirilganidan so`ng, dasta[i] turli qiymatlarga ega bo`lib qoladi. dasta[i] / 13 bu yerda 0 dan 12 gacha bo`lgan oraliqdagi dasta[i] % 13 mos karta raqamini hisoblovchi 0, 1, 2, 3 sonlaridir.
Endi bu dasturni vektordan foydalangan holda, qayta ko`rib chiqamiz. 52 ta kartani 0 dan 51 gacha qiymatlar bilan yuklovchi quyidagicha kodli o`zgartirish kiritamiz:

Yüklə 128,5 Kb.

Dostları ilə paylaş:
1   2   3   4   5




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin