C++ list


ULASHISH

C++ list

List bir xil tipdagi bir nechta elementni saqlay olishi va o‘lchami dinamik ravishda kattalasha olishi bilan vektorga o‘xshaydi.

Biroq list’lar va vektorlar o‘rtasida ikkita asosiy farq bor:

  1. List’ga elementlarni ham boshidan, ham oxiridan qo‘shish va olib tashlash mumkin, vektorlar esa odatda oxiridan qo‘shish va olib tashlash uchun optimallashtirilgan.

  2. Vektorlardan farqli ravishda list ixtiyoriy murojaatni (random access) qo‘llab-quvvatlamaydi, ya’ni to‘g‘ridan-to‘g‘ri muayyan indeksga o‘tib yoki elementlarga indeks raqamlari orqali murojaat qilib bo‘lmaydi.

List’dan foydalanish uchun <list> sarlavha faylini qo‘shishingiz kerak:

// Include the list library #include <list>

List yaratish

List yaratish uchun list kalit so‘zidan foydalaning, burchakli qavslar <> ichida u saqlaydigan qiymatlar tipini, so‘ng list nomini ko‘rsating, masalan: list<type> listName.

Misol

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

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

Misol

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

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


List elementlariga murojaat qilish

Massivlar va vektorlardagidek list elementlariga indeks raqamlari orqali murojaat qilib bo‘lmaydi.

Biroq birinchi va oxirgi elementga mos ravishda .front() va .back() funksiyalari yordamida murojaat qilishingiz mumkin:

Misol

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


List elementini o‘zgartirish

Birinchi yoki oxirgi element qiymatini .front() va .back() funksiyalari yordamida o‘zgartirishingiz ham mumkin

Misol

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

List’ga element qo‘shish

List’ga element qo‘shish uchun uning boshiga element qo‘yishda .push_front() funksiyasidan, oxiriga element qo‘shishda esa .push_back() funksiyasidan foydalanishingiz mumkin:

Misol

list<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; // Add an element at the beginning cars.push_front("Tesla"); // Add an element at the end cars.push_back("VW");
O‘zingiz sinab ko‘ring »

List’dan element olib tashlash

List’dan element olib tashlash uchun uning boshidagi elementni olib tashlashda .pop_front() funksiyasidan, oxiridagi elementni olib tashlashda esa .pop_back() funksiyasidan foydalaning:

Misol

list<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; // Remove the first element cars.pop_front(); // Remove the last element cars.pop_back();
O‘zingiz sinab ko‘ring »

List o‘lchami

List’da nechta element borligini bilish uchun .size() funksiyasidan foydalaning:

Misol

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

List bo‘shligini tekshirish

List bo‘sh yoki bo‘sh emasligini aniqlash uchun .empty() funksiyasidan foydalaning.

.empty() funksiyasi list bo‘sh bo‘lsa 1 (true), aks holda 0 (false) qaytaradi:

Misol

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

Misol

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

List bo‘ylab sikl

List elementlarini an’anaviy for siklini .size() funksiyasi bilan birga ishlatib aylanib chiqib bo‘lmaydi, chunki list elementlariga indeks orqali murojaat qilish imkonsiz:

Misol

list<string> cars = {"Volvo", "BMW", "Ford", "Mazda"}; for (int i = 0; i < cars.size(); i++) {   cout << cars[i] << "\n"; }

List bo‘ylab aylanib chiqishning eng oddiy usuli — for-each sikli:

Misol

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

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




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!