2-mavzu: Dinamik va statik massivlarni tashkil etish. Interfeyslar va ularning hisoblash murakkabligi
Download 240.11 Kb.
|
2-
- Bu sahifa navigatsiya:
- Vektorlar. Vektor
- Vektor yacheykasiga murojaat qilishning ikkinchi usuli
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 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 Xuddi stek va navbat konstruksiyasi kabi u ham quyidagicha e’lon qilinadi: vector Bundan tashqari vektorga boshlang’ich qiymatlar berishingiz mumkin. Masalan: vector 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.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 Shunday qilib, vektor nomidan keyin qavs ichida () biz boshlang'ich uzunligini ko'rsatamiz. Mana bu esa ikkinchi yo'l: vector 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 vector 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling