Скачиваний:
4
Добавлен:
20.05.2024
Размер:
237.35 Кб
Скачать

3-Lekciya. Associativ konteynerler. Associativ konteynerler (set, map, multiset, multimap).

Jobası:

1.Associativ konteynerler

2.set, map, multiset, multimap

Associativ konteynerler hár elementtiń onıń menen baylanıslı gilti bar konteynerler bolıp tabıladı hám bul gilt konteynerdegi elementke kirisiw ushın paydalanıladı. C++ tilinde associativ konteynerler toplamlar (set) hám kartalar/sózlikler (map) arqalı usınılǵan. C++ tilinde associativ konteynerler elementlerdi sortlanǵan tártipte saqlawǵa imkaniyat beredi. Buyırtpa elementtiń qashan kirgizilgenine baylanıslı emes.

Ishki túrde olar ekilik terek (binary tree) maǵlıwmatlar strukturaları retinde ámelge asırıladı.

Associativ konteynerlerlerdiń túrleri

Set - gilt boyınsha tártiplengen qaytalanbaytuǵın giltlerdiń toplamı

Map - giltlerge ajıratılǵan gilt-mánis juplıqlar toplamı, giltler qaytalanbaydı (unikal)

Multiset - giltler boyınsha tártiplengen toplam.

Multimap - giltler boyınsha tártiplengen, gilt-mánis juplıqlar toplamı.

Mısal: C++ te associativ konteyner (set)

Bul mısalda biz associativ konteynerdiń jumısın kórsetiw ushın set klasın qollanamız.

#include <iostream> #include <set> using namespace std;

int main() {

// initialize a set of int type

set<int> numbers = {1, 100, 10, 70, 100};

// print the set

cout << "Numbers are: "; for(auto &num: numbers) { cout << num << ", ";

}

return 0;

}

Orınlanıwı

Joqarıda keltirilgen mısalda biz set klasın paydalanıp associativ konteyner jarattıq. Biz 100 qaytalanatuǵın mánis penen qatar tártipsiz (retsiz) pútin sanları bar numbers dep atalatuǵın set-ti iske túsirdik.

map klası

 

 

 

 

 

Map

hám

multimap

-

konteyner

klası

shablonların

hám olardıń járdemshi shablonların belgileydi. <map> kitapxanası, sonıń menen birge #include <initializer_list> direktivasınan paydalanadı. map hám multimap ushın tómendegi operatorlar qayta júklengen:

Hár bir element maǵlıwmatlar mánisi hám saralaw giltine iye bolǵan jıynaqtan maǵlıwmatlardı saqlaw hám alıw ushın qollanıladı. Gilt mánisi kem ushraytuǵın bolıp tabıladı hám maǵlıwmatlardı avtomatikalıq saralaw ushın isletiledi. map de elementtiń mánisi tuwrıdan-tuwrı ózgertiliwi múmkin. Gilt mánisi turaqlı bolıp, onı ózgertip bolmaydı. Bunıń ornına eski elementler menen baylanıslı bolǵan gilt bahalardı óshiriw hám jańa elementlerge jańa gilt bahaların

kirgiziw kerek.

 

 

 

 

 

 

 

Multiset klası

 

 

 

 

 

 

Multiset

-

birdey

giltler

menen

isleytuǵın

tipler

hám

funksiyalarǵa

iye

konteyner

bolıp tabıladı. set

klasında

ámeldegi

barlıq

funkciyalar multimap klası ushın da qollanıladı. Tek ámeldegi elementlerge shaqırıwda funkciya sintaksisi ózgeriwi múmkin.

Baqlaw sorawları:

1. Associativ konteynerler degenimiz ne?

2.Associativ konteynerlerge mısallar keltiriń

3.set, map, multiset, multimap associativ konteynerler

4.C++ te associativ konteyner (set)ge mısal keltiriń.

5.Giltler boyınsha tártiplengen toplam qaysı?

6.Giltlerge ajıratılǵan gilt-mánis juplıqlar toplamı?

Соседние файлы в предмете Объектно ориентированное программирование