Cozy Theme Presentation


Download 78.46 Kb.
Pdf ko'rish
Sana19.06.2023
Hajmi78.46 Kb.
#1620544
Bog'liq
Dasturlash mustaqil ish D.Maloxat



Chiziqli konteynerlar (array, vector,
deque, list, forward_list)
Dasturlash fanidan Mustaqil ish 913-22
talabasi Durdibayeva Maloxat


Chiziqli konreynerlar (array, vector, deque, list, forward_list). Standart
konteynerlarni ikkita katta guruhga chiziqli va assotsiativ konteynerlarga
bo‘lishini bilamiz. O‘z navbatida chiziqli konteynerlarni bog‘langan ro‘yxat
(forward_list va list) va tasodifiy kirish konteynerlariga (ekrin konteyner deb
ham yuritiladi) (deque, vector va array) bo‘linadi.


Assotsiativ konteynerlar quyidagi variantlarning
kombinatsiyasi bo‘lgan sakkizta konteyner bilan ifodalanadi
(tegishli standart sinflar nomlarining qavslar ichida beriladi):
to‘plam (*set) yoki lug‘at (*map), elementlarni takrorlashga
imkon beruvchi (*multi*) yoki ruxsat bermaydigan, tartibga
solingan solinmagan (unordered*).


Statik massiv < array>. array iteratorning tasodifiy kirishi orqali elementlarga kirish
imkonini beradi va statik array T[N] to‘plami hisoblanadi, kerakli manzili data funksiyasi
tomonidan olinishi mumkin. T[N] massivdan farqli ravishda array - qiymatlari
ko‘chirilishi (qiymat bo‘yicha funksiyalarga o‘tishi) mumkin bo‘lgan va qiymatlari
avtomatik ravishda ko‘rsatgichlarga aylantirilmaydigan to‘la huquqli tipdir.
Dinamik massiv (vektor) . Vektor> elementlarga maxsus kirish
iteratori orqali kirishni ta
ʻminlaydi. Deque dan farqli o‘laroq, u kiritish va boshida elementlarni
o‘chirish uchun ruxsat bermaydi. Dinamik massiv xotiraning uzluksiz bo‘limida ketma-ket
saqlangan elementlarning joylashishini kafolatlaydi, uning manzili data funksiyasi bilan
qaytariladi. Elementlarni qo‘shish va oldindan ajratilgan saqlashni tugatishda elementlar
ko‘chiriladigan joyga katta hajmdagi yangi dinamik qator ajratish mumkin.


Ikki tomonlama navbat . deque> , maxsus kirish iteratori
orqali elementlar uchun kirish imkonini beradi. Faqat ro‘yxati kabi, u samarali qo‘shish
va har ikki tomonidan ma
ʻlumotlar olib tashlash imkonini beradi. Indeksga kirish uchun
ikkita funksiya ishlatiladi: [] operatori va at(indeks).
Birinchisidan farqli o‘laroq, ikkinchisi indeksni tekshiradi va qiymati haqiqiy bo‘lmasa,
out_of_range istisnoga murojaat qiladi.
Ikki aloqali ro‘yxat (ikkilangan ro‘yxat) list> ikki tomonlama
iterator orqali T tipdagi elementlarga kirishni ta
ʻminlaydi. Bir aloqali ro‘yxatdan farqli
o‘laroq, elementlarni belgilangan pozitsiyadan oldin joylashtirildi (insert, emplace,
splice funksiyalari), oxiridan qo‘shish va o‘chirish (push_back, emplace_back,
pop_back), va iterator ko‘rsatayotgan elementni o‘chirish (erase) funksiyalari bilan
amalga oshiriladi. *_after funksiyasi mavjud emas.


Bir aloqali ro‘yxat . forward_list> bir
tomonlama iterator orqali T tipdagi elementlarga kirishni ta
ʻminlaydi.
Ro‘yxatning tugunlarini yaratish uchun A::rebind orqali yaratilgan
allokatorday foydalaniladi.
Bir aloqali ro‘yxatning o‘ziga xosligi shundaki, faqat belgilangan joriy
tugundan keyin elementlarni qo‘shish va o‘chirish mumkin:
insert_after - element qo‘shish.
emplace_after – yangi element yaratish. Bunda belgilangan parametrlar
uchun konstruktor chaqiriladi.
erase_after - element o‘chirish.
Birinchi elementdan oldin degan ko‘shimcha aniqlangan pozitsiya mavjud.
Bu before_begin va cbefore_begin (const_iterator qaytaruvchilar uchun
variant) funksiyalari yordamida bajariladi.


#include "stdafx.h"
#include 
#include  
#include 
#include 
#include  int main(){
// konstruktor agregat boshlang'ichni ishlatadi
std: :array al={ {1,2,3} }; // ikki qavs kerak
std: :array‹int, 3> a2 = {1, 2, 3};
// tayinlash operatsiyalari bundan mustasno
std::array a3 = { {std::string("a"), "b"} };
// umumlashtirilgan algoritmlar qo'llab-quvvatlanadi
std::sort(al.begin(), al.end());
std::reverse_copy(a2.begin(), a2.end(),
std::ostream iterator(std::cout, " "));
// go'llab-quvvatlanadigan gatorga go'yildi
std::cout<for (auto& s: a3) std::cout « s «‹ " “ ;
getchar);
}
array sinfi uchun qayta yuklamagan operatorlar

Download 78.46 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling