C++ vektorlar


ULASHISH

C++ vektor

C++ tilidagi vektor o‘lchamini o‘zgartirish mumkin bo‘lgan massivga o‘xshaydi.

Vektorlar ham, massivlar ham bir xil ma’lumot tipidagi bir nechta elementni saqlash uchun ishlatiladigan ma’lumotlar tuzilmalaridir.

Massiv va vektor o‘rtasidagi farq shundaki, massivning o‘lchamini o‘zgartirib bo‘lmaydi (massivga element qo‘shib yoki undan element olib tashlab bo‘lmaydi). Vektor esa kerak bo‘lganda kattalashishi yoki kichrayishi mumkin.

Vektordan foydalanish uchun <vector> sarlavha faylini qo‘shishingiz kerak:

// Include the vector library #include <vector>

Vektor yaratish

Vektor yaratish uchun vector kalit so‘zidan foydalaning, burchakli qavslar <> ichida u saqlaydigan qiymatlar tipini, so‘ng vektor nomini ko‘rsating, masalan: vector<type> vectorName.

Misol

// Create a vector called cars that will store strings vector<string> cars;

Agar e’lon qilish paytida elementlar qo‘shmoqchi bo‘lsangiz, ularni xuddi massivlardagidek jingalak qavslar {} ichida vergul bilan ajratib yozing:

Misol

// Create a vector called cars that will store strings vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; // Print vector elements for (string car : cars) {   cout << car << "\n"; }
O‘zingiz sinab ko‘ring »

Eslatma: Vektor e’lon qilingandan keyin uning tipini (misolimizda string) o‘zgartirib bo‘lmaydi.


Vektor elementlariga murojaat qilish

Vektor elementiga kvadrat qavslar [] ichida indeks raqamini ko‘rsatib murojaat qilishingiz mumkin.

Vektorlar ham massivlar kabi 0 dan indekslanadi, ya’ni [0] — birinchi element, [1] — ikkinchi element va hokazo:

Misol

// Create a vector called cars that will store strings vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; // Get the first element cout << cars[0];  // Outputs Volvo // Get the second element cout << cars[1];  // Outputs BMW
O‘zingiz sinab ko‘ring »

vector kutubxonasidan foydalanishning afzalliklaridan biri — unda ko‘plab foydali funksiyalar mavjudligi. Masalan, vektorning birinchi yoki oxirgi elementiga .front() va .back() funksiyalari yordamida murojaat qilishingiz mumkin:

Misol

// Create a vector called cars that will store strings vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; // Get the first element cout << cars.front(); // Get the last element cout << cars.back();
O‘zingiz sinab ko‘ring »

Ko‘rsatilgan indeksdagi elementga murojaat qilish uchun .at() funksiyasidan foydalanib, indeks raqamini ko‘rsatishingiz mumkin:

Misol

// Create a vector called cars that will store strings vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; // Get the second element cout << cars.at(1); // Get the third element cout << cars.at(2);
O‘zingiz sinab ko‘ring »

Eslatma: Ko‘pincha kvadrat qavslar [] o‘rniga .at() funksiyasi afzal ko‘riladi, chunki u xato yuz berganini sizga bildiradi.

Masalan, element diapazondan tashqarida bo‘lsa:

Misol

// Create a vector called cars that will store strings vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; // Try to access an element that does not exist (throws an error message) cout << cars.at(6);
O‘zingiz sinab ko‘ring »


Vektor elementini o‘zgartirish

Muayyan element qiymatini o‘zgartirish uchun uning indeks raqamiga murojaat qilishingiz mumkin:

Misol

vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; // Change the value of the first element cars[0] = "Opel"; cout << cars[0];  // Now outputs Opel instead of Volvo
O‘zingiz sinab ko‘ring »

Biroq .at() funksiyasidan foydalanish xavfsizroq:

Misol

vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; // Change the value of the first element cars.at(0) = "Opel"; cout << cars.at(0);  // Now outputs Opel instead of Volvo
O‘zingiz sinab ko‘ring »

Vektorga element qo‘shish

Vektor va massiv o‘rtasidagi eng katta farq — vektorlar dinamik ravishda kattalasha oladi. Bu vektorga element qo‘shish yoki undan element olib tashlash mumkinligini anglatadi.

Vektorga element qo‘shish uchun .push_back() funksiyasidan foydalanishingiz mumkin, u elementni vektor oxiriga qo‘shadi:

Misol

vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; cars.push_back("Tesla");
O‘zingiz sinab ko‘ring »

Istalgancha element qo‘shishingiz 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");
O‘zingiz sinab ko‘ring »

Vektordan element olib tashlash

Vektordan element olib tashlash uchun .pop_back() funksiyasidan foydalanishingiz mumkin, u vektor oxiridagi elementni olib tashlaydi:

Misol

vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; cars.pop_back();
O‘zingiz sinab ko‘ring »

Eslatma: Odatda elementlar faqat vektor oxiriga qo‘shiladi va oxiridan olib tashlanadi. Agar elementlarni ikkala uchidan qo‘shish yoki olib tashlash kerak bo‘lsa, ko‘pincha vektor o‘rniga deque ishlatgan ma’qul.


Vektor o‘lchami

Vektorda nechta element borligini bilish uchun .size() funksiyasidan foydalaning:

Misol

vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; cout << cars.size();  // Outputs 4
O‘zingiz sinab ko‘ring »

Vektor bo‘shligini tekshirish

Vektor bo‘sh yoki bo‘sh emasligini aniqlaydigan funksiya ham bor.

.empty() funksiyasi vektor bo‘sh bo‘lsa 1 (true), bir yoki undan ortiq elementga ega bo‘lsa 0 (false) qaytaradi:

Misol

vector<string> cars; cout << cars.empty();  // Outputs 1 (The vector is empty)
O‘zingiz sinab ko‘ring »

Misol

vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; cout << cars.empty();  // Outputs 0 (not empty)
O‘zingiz sinab ko‘ring »

Vektor bo‘ylab sikl

Vektor elementlarini for siklini .size() funksiyasi bilan birga ishlatib aylanib chiqishingiz mumkin:

Misol

vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; for (int i = 0; i < cars.size(); i++) {   cout << cars[i] << "\n"; }
O‘zingiz sinab ko‘ring »

Shuningdek, for-each siklidan ham foydalanishingiz mumkin (C++ 11-versiyasida (2011) kiritilgan) — u toza va o‘qilishi osonroq:

Misol

vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; for (string car : cars) {   cout << car << "\n"; }
O‘zingiz sinab ko‘ring »

Maslahat: Vektorlarni iterator yordamida ham aylanib chiqish mumkin, bu haqda keyingi boblarda batafsil bilib olasiz.




Vector bo‘yicha to‘liq ma’lumotnoma

Vector funksiyalarining to‘liq ro‘yxati uchun C++ Vector ma’lumotnomamizga o‘ting.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!