2-mavzu: Dinamik va statik massivlarni tashkil etish. Interfeyslar va ularning hisoblash murakkabligi


Download 240.11 Kb.
bet6/8
Sana30.03.2023
Hajmi240.11 Kb.
#1309725
1   2   3   4   5   6   7   8
Bog'liq
2-

Massiv yordamida navbat yaratish
Yuqorida aytib o'tganimizdek, navbatni massiv orqali amalga oshirish mumkin. Odatda, agar kimdir bunday navbatni yaratsa, massiv navbat deyiladi.
#include
#include // Nueue kutubxonasini ulash
using namespace std;
int main()
{
int N[7];
int start = 0, ends = 0;

cout << "7 ta son kiriting: " << endl;


for (int h = 0; h < 7; h++)


{
int a;
cin >> a;
N[ends++] = a; // Navbatga (massivga) element qo'shish
}
cout << "Eng birinchi element: " << N[start] << endl;
start++;
cout << "Navbatning eng oxirgi elementi: " << N[ends - 1];
if (start != ends) cout << "Navbat to'lgan!";
}


Vektorlar. Vektor - bu dinamik massiv modeli bo'lgan ma'lumotlar strukturasi.
Dinamik massivni yaratish uchun (qo'lda) yangi konstruktor va qo'shimcha ko'rsatkichlardan foydalanish kerakligini eslaylik. Biroq, vektorlarga qaraganda, bularning barchasini qilishingiz shart emas.
C++ tilida vektorlar yaratish. Birinchi navbatda vektorlar yaratish uchun kutubxonasini bog’lash kerak.
Xuddi stek va navbat konstruksiyasi kabi u ham quyidagicha e’lon qilinadi:
vector

Bundan tashqari vektorga boshlang’ich qiymatlar berishingiz mumkin.


Masalan:
vector V = {7, 4, 3};
Vektor yacheykasiga murojaat qilishning ikkinchi usuli
Bilamizki, vektor yacheykasiga murojaat qilish uchun indekslardan foydalanadi. Odatda biz ularni kvadrat qavslar[] bilan birgalikda ishlatamiz.
Ammo C++ da at() funksiyasi tufayli buni amalga oshirishning yana bir usuli mavjud. Qavslar ichida biz murojaat qilishimiz kerak bo'lgan katak indeksini ko'rsatishimiz kerak.
Bu amalda qanday ishlaydi:
vektor V = {1, 2, 3};
V.at(1) = 8; // ikkinchi element qiymatini o’zgartiradi
cout << V.at (1); // uni ekranda ko'rsatish
Vektor uchun kataklar sonini qanday belgilash mumkin
Vektor o'lchamini har xil usulda belgilashingiz mumkin. Siz buni ishga tushirish paytida ham qilishingiz mumkin, yoki hatto dasturning oxirida ham qilishingiz mumkin. Masalan, boshida vektor uzunligini aniqlashning bir usuli:
vector vector_first(5);
Shunday qilib, vektor nomidan keyin qavs ichida () biz boshlang'ich uzunligini ko'rsatamiz. Mana bu esa ikkinchi yo'l:
vector  V;  // Vektor yaratish
vector_second.V(5);  // Vektor uzunligini ko’rsatish
Birinchi qator biz uchun allaqachon tanish. Ammo ikkinchisida noma'lum so'z bor - reserve, bu biz kompilyatorga qancha yacheykadan foydalanishimiz kerakligini aytadigan funktsiya.
Shu o’rinda mantiqiy savol paydo bo’lishi mumkin: "Bu ikki usulning farqi nima?".Quyida ikkita vektorni yaratamiz va ularning yacheykalar sonini boshqacha ko'rsatamiz.
#include
#include // подключили библиотеку
using namespace std;
int main() {
vector V1(3);
vector V2;
V2.reserve(3);
cout << "Birinchi vektorni chiqarish:";
for (int i = 0; i < 3; i++) {
cout << V1[i] << " ";
}
cout<

cout << "Ikkinchi vektorni chiqarish: " << endl;


for (int i = 0; i < 3; i++) {


cout << V2[i] << " ";
}
return 0;
}

Ko'rib turganingizdek, birinchi holatda biz uchta nolni, ikkinchisida: 7738304, 7733440, 1935436643 chiqaramiz.


Buning sababi shundaki, birinchi usuldan foydalanganda barcha yacheykalar avtomatik ravishda nol bilan to'ldirilgan.
Biror narsani e'lon qilayotganda (massiv, vektor, o’zgaruvchi va boshqalar) biz kompyuter uchun keraksiz chiqindini o'z ichiga olgan xotira yacheykalarining ma'lum bir qismini ajratamiz. Bizda bu chiqindi holatidagi raqamlardir.

Download 240.11 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling