C++ vektorlar
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!
