Vektorlar (Vectors)
C++ Vektor
C++ dagi vektor o'lchamini o'zgartirish mumkin bo'lgan massiv ga o'xshaydi.
Vektorlar ham, massivlar ham bir xil ma'lumot turining bir nechta elementlarini saqlash uchun ishlatiladigan ma'lumot tuzilmalaridir.
Massiv va vektor o'rtasidagi farq shundaki, massivning hajmini o'zgartirish mumkin emas (element qo'shish yoki olib tashlash mumkin emas). Biroq vektor kerak bo'lganda kattalashishi yoki kichiklashishi mumkin.
Vektordan foydalanish uchun <vector> sarlavha faylini import qilish kerak:
MISOL
// Vektor kutubxonasini import qilish
#include <vector>Vektor yaratish
Vektor yaratish uchun vector kalit so'zini ishlating va burchak qavslar <> ichida saqlashi kerak bo'lgan qiymatlar turini va keyin vektor nomini belgilang: vector<tur> vektorNomi.
MISOL
// Satrlarni saqlaydigan cars nomli vektor yaratish
vector<string> cars;E'lon vaqtida elementlar qo'shmoqchi bo'lsangiz, ularni vergul bilan ajratilgan ro'yxatda, figurali qavslar {} ichiga joylashtiring:
MISOL
// Satrlarni saqlaydigan cars nomli vektor yaratish
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
// Vektor elementlarini chop etish
for (string car : cars) {
cout << car << "\n";
}ESLATMA
Vektor turi (misolimizdagi string) e'lon qilingandan keyin o'zgartirib bo'lmaydi.
Vektor elementiga kirish
Vektor elementiga kvadrat qavslar [] ichidagi indeks raqami orqali kirish mumkin.
Vektorlar massivlar kabi 0 dan boshlab indekslanadi, ya'ni [0] birinchi element, [1] ikkinchi element va hokazo:
MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
// Birinchi elementni olish
cout << cars[0]; // Volvo chiqaradi
// Ikkinchi elementni olish
cout << cars[1]; // BMW chiqaradiVektor kutubxonasining afzalliklaridan biri shundaki, u ko'plab foydali funksiyalarni o'z ichiga oladi. Masalan, vektorning birinchi yoki oxirgi elementiga .front() va .back() funksiyalari orqali kirish mumkin:
MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
// Birinchi elementni olish
cout << cars.front();
// Oxirgi elementni olish
cout << cars.back();Belgilangan indeksdagi elementga kirish uchun .at() funksiyasidan foydalanish mumkin:
MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
// Ikkinchi elementni olish
cout << cars.at(1);
// Uchinchi elementni olish
cout << cars.at(2);ESLATMA
.at() funksiyasi ko'pincha kvadrat qavslarga [] qaraganda afzalroq, chunki element chegaradan tashqarida bo'lsa xato xabarini beradi.
Vektor elementini o'zgartirish
Muayyan elementning qiymatini o'zgartirish uchun indeks raqamiga murojaat qilish mumkin:
MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
// Birinchi elementning qiymatini o'zgartirish
cars[0] = "Opel";
cout << cars[0]; // Endi Volvo o'rniga Opel chiqaradi.at() funksiyasi bilan xavfsizroq:
MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
// Birinchi elementning qiymatini o'zgartirish
cars.at(0) = "Opel";
cout << cars.at(0); // Endi Volvo o'rniga Opel chiqaradiVektor elementlarini qo'shish
Vektor va massiv o'rtasidagi eng katta farq shundaki, vektorlar dinamik ravishda o'sishi mumkin. Bu vektor elementlarini qo'shish yoki olib tashlash mumkinligini anglatadi.
Vektorga element qo'shish uchun .push_back() funksiyasidan foydalaning, u vektorning oxiriga element qo'shadi:
MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
cars.push_back("Tesla");Xohlagancha element qo'shish mumkin:
MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
cars.push_back("Tesla");
cars.push_back("VW");
cars.push_back("Mitsubishi");
cars.push_back("Mini");Vektor elementlarini olib tashlash
Vektordan element olib tashlash uchun .pop_back() funksiyasidan foydalaning, u vektorning oxiridan elementni olib tashlaydi:
MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
cars.pop_back();ESLATMA
Elementlar odatda faqat vektorning oxiridan qo'shiladi va olib tashlanadi. Agar ikkala uchidan element qo'shish yoki olib tashlash kerak bo'lsa, vektor o'rniga dekyu ishlatish yaxshiroqdir.
Vektor hajmi
Vektorda nechta element borligini bilish uchun .size() funksiyasidan foydalaning:
MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
cout << cars.size(); // 4 chiqaradiVektor bo'sh yoki yo'qligini tekshirish
.empty() funksiyasi vektor bo'sh bo'lsa 1 (true), bo'lmasa 0 (false) qaytaradi:
MISOL
vector<string> cars;
cout << cars.empty(); // 1 chiqaradi (vektor bo'sh)MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
cout << cars.empty(); // 0 chiqaradi (bo'sh emas)Vektor bo'ylab tsikl
.size() funksiyasi bilan for tsikli yordamida vektor elementlari bo'ylab aylanish mumkin:
MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (int i = 0; i < cars.size(); i++) {
cout << cars[i] << "\n";
}Yoki yanada toza va o'qilishi oson bo'lgan for-each tsikli ishlatish mumkin:
MISOL
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (string car : cars) {
cout << car << "\n";
}MASLAHAT
Iterator yordamida ham vektorlar bo'ylab aylanish mumkin, bu haqda keyingi boblarda o'rganasiz.
