6, 10, 2, 8, 4 je skup; 2, 4, 6, 8, 10 skup je istih cijelih brojeva, poredanih uzlaznim redoslijedom. U matematici skup ima jedinstvene elemente (različite elemente), odnosno, nijedan se element ne pojavljuje više puta. Nadalje, multiset je skup u kojem se bilo koji element može pojaviti više puta. 6, 6, 10, 2, 2, 8, 4, 4, 4 je višestruki skup. 2, 2, 4, 4, 4, 6, 6, 8, 10 isti je multiset, ali s elementima poredanim u rastućem redoslijedu. Ovaj se članak ne bavi multisetom. Bavi se C ++ strukturom podataka koja se naziva set.
Mapa u softveru je poput niza, ali to je niz s dva stupca umjesto jednog. Prvi stupac ima ključeve, a drugi stupac vrijednosti. Svaki redak je jedan par, čineći par ključ / vrijednost. Ključ je izravno povezan s njegovom vrijednošću.
Primjer karte je 'c', 30, 'b', 20, 'd', 30, 'e', 40, 'a', 10. Prvi ovdje ubačeni par ključ / vrijednost je 'c', 3, gdje je 'c' ključ, a 30 vrijednost. Ova karta nije poredana ključevima. Poredak ove karte po ključevima daje 'a', 10, 'b', 20, 'c', 30, 'd', 30, 'e', 40. Primijetite da mogu biti duplicirane vrijednosti, ali ne i duplicirani ključevi. Uređena karta je karta poredana tipkama.
Multiset je skupu, kao što je multimap karta. To znači da postoje karte s dupliciranim ključevima. Primjer višekarata je 'a', 10, 'b', 20, 'b', 20, 'c', 30, 'c', 30, 'd ', 30, ' e ', 40. I kao što je gore rečeno, ovaj se članak ne bavi multimapima, već se bavi C ++ strukturom podataka koja se naziva map.
U C ++-u struktura podataka je struktura sa svojstvima (članovi podataka) i metodama (funkcije člana). Podaci strukture su popis; set je popis; karta je popis parova ključ / vrijednost.
Ovaj članak raspravlja o osnovama skupova i karata na jeziku C ++, a da bi čitatelj bolje razumio ovaj članak, čitatelj je trebao imati osnovno znanje o jeziku C++.
Sadržaj članka:
- Klasa i njezini predmeti
- Izrada skupa ili karte
- Osnove iteratora
- Pristup elementima za set i kartu
- Redoslijed elemenata u skupu ili mapi
- Ostale često korištene funkcije člana
- Zaključak
Klasa i njezini objekti:
U C ++-u skup, karta i druge slične strukture nazivaju se spremnici. Klasa je generalizirana jedinica s članovima podataka, koji su varijable, i funkcijama člana koje su povezane. Kada se članovima podataka daju vrijednosti, formira se objekt. Međutim, objekt se formira u procesu koji se naziva instancijacija. Kako klasa može dovesti do različitih vrijednosti za iste varijable člana podataka, tada se iz iste klase mogu instancirati različiti objekti.
U C ++-u neupotrebljiv skup je klasa, kao i neupotrebljiva karta. Kad se objekt instancira iz neupotrebljivog skupa ili neupotrebljive karte, objekt postaje stvarna struktura podataka. Uz strukturu podataka skupa i mape, glavni član podataka je popis. Pa, skup i karta tvore skupinu spremnika koji se nazivaju uređeni asocijativni spremnici. Neuređeni skup i neuređena karta također postoje, ali nažalost u ovom se članku o njima ne govori.
Izrada skupa ili karte:
Instanciranje skupa iz njegove klase skupova stvara skup; instanciranje karte iz njezine klase mape stvara mapu. Tako stvoreni objekt dobiva ime po izboru programera.
Da bi stvorio set, program treba započeti sa:
#include
#include
pomoću prostora imena std; Obratite pažnju na direktivu „#include ”, Koja uključuje biblioteku skupova koja ima klasu skupova iz koje će se instancirati skupove podataka.
Kako bi stvorio kartu, program treba započeti sa:
#include
#include