O‘ZBEKISTON RESPUBLIKASI
OLIY VA O’RTA MAXSUS TA’LIM VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
URGANCH FILIALI
KOMPYUTER INJINERINGI FAKULTETI
961-20 GURUH TALABASI
Latipov Akbarning
DASTURLASH 2 FANIDAN
Mustaqil ish
Mavzu: Konteyner sinflar
Bajardi: Kompyuter injineringi fakulteti
961-20 guruh talabasi Latipov.A
Reja:
1.Konteyner sinflar qanday sinf hisoblanadi?
2. Qaysi saralash algoritmlarini bilasiz?
3. erilgan char turidagi to’plamda kata harfdan va kichik harfdan boshlanuvchi elementlari soni aniqlovchi hamda ularni ekranga chiqaruvchi dastur tuzing.
Konteyner sinflar. Konteyner sinflar muayyan tarzda tashkil qilingan maʻlumotlarni saqlash uchun mo‘ljallangan sinflar. Turli xil tipdpgi maʻlumotlarni saqlash uchun bir xil turdagi konteynerdan foydalanishingiz mumkin. Bu xususiyat sinf shablonlari yordamida amalga oshiriladi, shuning uchun C++ kutubxonasining konteyner sinflarini, shuningdek algoritmlarni va iteratorlarni o‘z ichiga olgan qismi standart shablonlar kutubxonasi (STL) deb ataladi.
Maʻlumotlar konteynerlarda saqlanadi va ular bilan turli amallar konteyner usullari va moslanuvchan algoritmlar bilan aniqlanadi va bajariladi. Iteratorlar bu ikki elementni bir-biriga bog‘lagan holda ishlaydi. Ular tufayli har qanday algoritm har qanday konteyner bilan ishlashi mumkin.
Professonal dasturlashni kutubxona sinflarisiz foydalanishni tasavvur qilish mumkin emas, shuningdek alohida konteynerlarsiz ham. Ulardan foydalanish dasturlarning ishonchliligi, joriy qilish samaradorligi, moslashuvchanligi va ko‘p qirraliligini oshirish hamda dastur tuzish vaqtini kamaytirishga imkonini beradi. Kutubxonani yaratish ko‘p ish va mashaqqat talab qiladi, amao, dastur yaratish vaqtida o‘zini oqlaydi.
STL kutubxonasi dasturlarni yozishda ishlatiladigan asosiy maʻlumotlar tuzilmalarini amalga oshiruvchi konteynerlarni o‘z ichiga oladi: vektorlar, navbatlar, ro‘yxatlar, lug‘atlar va to‘plamlar. Konteynerlarni ikki turga bo‘lish mumkin: ketma-ket va assotsiativ konteynerlar .
Ketma-ket konteynerlar. Ular uzluksiz ketma-ketlikda o‘xshash miqdorlarning chekli sonini saqlashni taʻminlaydi. Konteynerlar sifatida vektor (vector), ikki tomonlama navbat (deque), ro‘yxat (list) va bir aloqali ro‘yxati (forward_list), shuningdek konteyner variantlar asosida adapterlar, stek (stack), navbat (queue) va ustuvorlik bilan navbat (priority_queue) sinflarini o‘z ichiga oladi. Massiv ham amallar bilan cheklangan holda konteynerning yana bir turidir.
Konteynerning har bir turi maʻlumotlar ustida o‘z amallar to‘plamini taʻminlaydi. Siz tanlagan konteyner turi dasturdagi maʻlumotlar bilan nima qilishni xohlashingizga bog‘liq. Masalan, agar ketma-ketlik o‘rtasida maʻlumotlar tez - tez joylashtirish va o‘chirish kerak bo‘lsa, ro‘yxatlardan foydalanish kerak, maʻlumotlarni oxirida yoki boshida, birinchi navbatda joylatrish kerak bo‘lsa, ikki tomonlama navbatdan foydalanish maqsadga muvofiq.
Assotsiativ konteynerlar. Assotsiativ konteynerlar asosiy maʻlumotlarga kalitlar asosida tezkor murojaat qilishni taʻminlaydi. Bu konteynerlar muvozanatli daraxtlarga asoslangan. Assotsiativ konteynerlarning besh turi mavjud: lug‘atlar (map), ko‘p lug‘atlar (multi) (multimap), to‘plamlar (set), multi to‘plamlar (multiset) va bitli to‘plam (bitset).
Dasturchi standart kutubxonada mavjud bo‘lgan sinflarga asoslanib o‘z konteyner sinflarini yaratishi mumkin. Bunga kirishishdan oldin muhim tushunchani bilishinggiz shart, yaʻni STL kutubxonasining fundamental tushunchasi bu shablondir
Barcha konteyner sinflari standartlashtirilgan interfeysi bilan taʻminlangan. Turli konteynerlar uchun bir xil amallarning maʻnosi bir xil bo‘lishi tabiiydir. Asosiy amallar konteynerlarning barcha turlari uchun qo‘llaniladi. Standart esa faqat konteyner interfeysini belgilaydi, shuning uchun turli xil dasturlar samaradorlikda katta farq qilishi mumkin. Barcha konteynerlar o‘z xotirasini o‘zi boshqaradi, shuning uchun dasturchi bu haqida o‘ylashning hojati yo‘q.
Deyarli har qanday konteynerlarning quyidagi xususiyatlari bor:
Konteyner xususiyatlari.
1 value_type - Konteyner elementining tipi
2 size_type - Elementlar indeksining tipi
3 iterator - Iterator
4 const_iterator - O‘zgarmas iterator
5 reverse_iterator - Teskari iterator
6 const_reverse_iterator - O‘zgarmas teskari iterator
7 reference - Elementga havola
8 const_reference - O‘zgarmas elementga havola
9 key_type - Kalit tipi (assotsiativ konteynerlar uchun)
10 key_compare - Taqqoslash mezoni
function getLowerAndUpperCases(arr){
let upperCaseCount = 0;
let lowerCaseCount = 0;
const upperCaseElements = [];
const lowerCaseElements = [];
for (let str of arr) {
str = str.toString();
const isUpperCase = str.substring(0,1) == str.substring(0,1).toUpperCase();
if(isUpperCase){
upperCaseCount++;
upperCaseElements.push(str);
}else{
lowerCaseCount++;
lowerCaseElements.push(str);
}
}
return {
upperCaseCount,lowerCaseCount,
upperCaseElements,lowerCaseElements
}
}
const result = getLowerAndUpperCases([
'Testing',
'Abdusattorov',
'Abduraxim',
'it\'s lowercase element',
'It\'s uppercase element'
]);
console.log(result);import 'bootstrap@4.6.0'
import $ from 'jquery'
$('button')
.html('Click me') // Try edit it...
.on('click', () => console.log('Hi friend!'))
console.log('App started')
PlayCode - Javascript Playground
Do'stlaringiz bilan baham: |