Skip to content

Massiv o'lchamini tushirib qoldirish (Omit Array Size)

O'lcham ko'rsatmasdan massiv e'lon qilish

C++ tilida massivning o'lchamini ko'rsatmaslik mumkin. Kompilyator kiritilgan qiymatlar soniga qarab massivning o'lchamini avtomatik aniqlaydi:

MISOL

cpp
string cars[] = {"Volvo", "BMW", "Ford"}; // Uchta element

Yuqoridagi misol quyidagiga teng:

MISOL

cpp
string cars[3] = {"Volvo", "BMW", "Ford"}; // Uchta element ham

Biroq, oxirgi usul "yaxshi amaliyot" hisoblanadi, chunki u dasturdagi xatolar ehtimolini kamaytiradi.


E'lon qilishda elementlarni tushirib qoldirish

Massivni elementlarni ko'rsatmasdan e'lon qilib, keyinchalik ularni qo'shish mumkin:

MISOL

cpp
string cars[5];
cars[0] = "Volvo";
cars[1] = "BMW";
cars[2] = "Ford";
cars[3] = "Mazda";
cars[4] = "Tesla";

ESLATMA

Yuqoridagi misol faqat massiv o'lchami ko'rsatilganda ishlaydi.

Agar massiv o'lchamini ko'rsatmasangiz, xatolik yuzaga keladi:

XATO MISOL

cpp
string cars[];   // Massiv o'lchami ko'rsatilmagan
cars[0] = "Volvo";
cars[1] = "BMW";
cars[2] = "Ford";
cars[3] = "Mazda";
cars[4] = "Tesla";

// xato: 'cars' da massiv o'lchami ko'rsatilmagan

O'zgarmas o'lcham (Massivlar) va dinamik o'lcham (Vektorlar)

C++ da massivlar haqida gapirilganda, ko'pincha "o'zgarmas o'lcham" va "dinamik o'lcham" atamalari ishlatiladi.

C++ da massivning o'lchami o'zgarmasdir, ya'ni massiv yaratilgandan keyin unga element qo'shib yoki o'chirib bo'lmaydi.

XATO MISOL — Massiv (o'zgarmas o'lcham)

cpp
// 3 ta elementli massiv
string cars[3] = {"Volvo", "BMW", "Ford"};

// To'rtinchi elementni qo'shishga urinish xatolik beradi
cars[3] = "Tesla";

Vektorlar

Element qo'shish va o'chirish kerak bo'lgan hollarda, C++ tilida vektorlar mavjud — ular o'lchami o'zgaruvchan massivlardir.

Vektorlar <vector> kutubxonasida joylashgan va elementlarni qo'shish, o'chirish va o'zgartirish uchun ko'p foydali funksiyalarga ega:

MISOL — Vektor (dinamik o'lcham)

cpp
// 3 ta elementli vektor
vector<string> cars = {"Volvo", "BMW", "Ford"};

// Vektorga yana element qo'shish
cars.push_back("Tesla");

MA'LUMOT

Bu faqat vektorlarga kirish edi. Yuqoridagi sintaksisni tushunmasangiz, tashvishlanmang. Vektorlar va boshqa ma'lumotlar tuzilmalari haqida keyingi boblarda batafsil o'rganasiz.