# data[].attributes.body
Def: Container ce retine elemente de acelasi tip pe pozitii consecutive in memorie

Accesare a elementelor: pozitie/index

Parcurgere: for: cu index, cu iterator si range base for

Insertie: O(n) - push_back, insert

Cautare: O(n) - find

Stergere: O(n) - erase

Utilizare: Retinem o cantitate de informatie, si ideal ca aceasta sa aiba o dimensiune fixa sau sa nu fie foarte volatila

# data[].attributes.body
Def: Este o structură de date care permite stocarea unui numar de 2 elemente de tipuri diferite

Accesare a elementelor: prin campurile first si second

Utilizare: se utilizeaza pentru a grupa si manipula un numar fix de 2 elemente dintr-un singur obiect, fiecare element putand fi de tip diferit

# data[].attributes.body
Def: Clasa template "tuple" defineste un container care grupeaza doua sau mai multe valori, care pot fi de orice tip, intr-o singura variabila

Accesare a elementelor:

std : : get<element>( tuple ) care returneaza o referinta la elementul al element-lea al tuplu-lui. Incepand de la C + +14, exista si varianta functiei get, in care element este tipul

campului catre care se doreste referinta, dar care poate folosita, doar daca tuplul dispune doar de un singur camp de tipul indicat prin element.

Utilizare: gruparea doua sau mai multe valori intr-o singura variabila

# data[].attributes.body
Def: Este un container asociativ utilizat pentru a stoca elemente pe care le putem obtine in ordinea data de prioritate. Default: cel mai prioritar element==cel mai mare(comparator std::less(), operatorul <)

Accesare a elementelor: se face prin functia top()

Parcurgere: nu pot face, doar daca scot elementele din coada

Insertie: log2n

Cautare: log2n

Stergere: log2n

Utilizare: obtinerea elementelor in ordinea data de prioritate

Custom: supraincarcare operatorului <, functor(struct in care supraincarcare operatorului ())

# data[].attributes.body
Def: Este un container asociativ utilizat pentru a stoca elemente unice intr-o ordine specifica. Default: crescatoare(comparator std::less(), operatorul <)

Accesare a elementelor: se face prin utilizarea iteratorilor si se poate accesa secvential sau prin cautare

Parcurgere: for iterator cu renge base for

Insertie: log2n

Cautare: log2n

Stergere: log2n

Utilizare: elemente unice si ordonate

Custom: supraincarcare operatorului <, functor(struct in care supraincarcare operatorului ())

# data[].attributes.body
Def: Este un container asociativ utilizat pentru a stoca perechi <cheie, valoare>, unde sunt unice intr-o ordine specifica. Default: crescatoare(comparator std::less(), operatorul <)

Accesare a elementelor: se face prin cheie

Parcurgere: for iterator cu renge base for

Insertie: log2n

Cautare: log2n

Stergere: log2n

Utilizare: elemente unice si ordonate

Custom: supraincarcare operatorului <, functor(struct in care supraincarcare operatorului ())

# data[].attributes.body
Def: Este un container asociativ utilizat pentru a stoca elemente unice si neordonate

Accesare a elementelor: se face prin find

Parcurgere: for iterator, range base for

Insertie: constanta : O(x)

Cautare: constanta : O(x)

Stergere: constanta : O(x)

Utilizare: elemente unice

Custom: functor(struct in care supraincarcare operatorului () pentru functia de hash)

# data[].attributes.body
Def: Este un container asociativ utilizat pentru a stoca perechi <cheie, valoare>, unde sunt unice si neordonate

Accesare a elementelor: se face prin cheie, find

Parcurgere: for iterator, range base for

Insertie: constanta : O(x)

Cautare: constanta : O(x)

Stergere: constanta : O(x)

Utilizare: elemente unice

Custom: functor(struct in care supraincarcare operatorului () pentru functia de hash)

# data[].attributes.body
Def: Stack este un adaptor de container(pentru stocarea efectiva a elementelor se foloseste un container-vector, lista inlantuita) cu structura de tip LIFO.

Accesare a elementelor: Elementele sunt accesibile doar de la varf - functia top()

Parcurgere: Trebuie sa extragem fiecare element unul cate unul pana cand stiva devine goala

Insertie: push() -adauga un element la sfarsitul stivei; complexitatea este O(1)

Cautare:

Stergere: pop() extrage elementul din varful stivei; complexitatea este O(1)

Utilizare: obtinerea unor date în ordine inversa citirii lor

# data[].attributes.body
Def: Queue este un adaptor de container(pentru stocarea efectiva a elementelor se foloseste un container-vector, lista inlantuita) cu structura de tip FIFO.

Accesare a elementelor: Elementele sunt accesibile doar primul - campul first

Parcurgere: Trebuie sa extragem fiecare element unul cate unul pana cand coada devine goala

Insertie: push() -adauga un element la finalul cozii complexitatea este O(1)

Cautare:

Stergere: pop() extrage elementul de la inceputul cozii, complexitatea este O(1)

Utilizare: obtinerea unor date în ordine inserarii lor

# data[].attributes.body
Def: structura de date în care fiecare element este la rândul sau o structura cu mai multe câmpuri, dintre care unul contine informatia, iar celelalte reprezinta legaturi de tip pointer catre elementele vecine din lista

Accesare a elementelor: implică traversarea listei pornind de la primul element (head) și urmărind legăturile de tip pointer până se ajunge la elementul dorit. Complexitatea O(n).

Parcurgere: O(n)

Insertie: La inceput, O(1)

Cautare: Cautarea unui element cu o anumit valoare din lista presupune parcurgerea acesteia, pâna se întâlneste valoarea respectiva. O(n)

Stergere: Stergerea unui element cu o anumit valoare din lista presupune parcurgerea acesteia, pâna se întâlneste valoarea respectiva. O(n)

Utilizare: modificarile prin adaugare / stergere sunt frecvente, iar accesul prin pozitie este de mic importanta