Benutzer:Koschi/Kontainer der STL
Koschi (Diskussion | Beiträge) (→Klassenfunktionen) |
Koschi (Diskussion | Beiträge) (→Klassenfunktionen) |
||
Zeile 376: | Zeile 376: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 385: | Zeile 385: | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
| align="center" rowspan="2" style="background-color:#E2E2E2;" | forward_list | | align="center" rowspan="2" style="background-color:#E2E2E2;" | forward_list | ||
+ | |- | ||
+ | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
+ | }} | ||
+ | |- | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | bucket | ||
+ | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
+ | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | unordered_(multi)map | ||
+ | |- | ||
+ | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
+ | }} | ||
+ | |- | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | bucket_count | ||
+ | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
+ | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | unordered_(multi)map | ||
+ | |- | ||
+ | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
+ | }} | ||
+ | |- | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | bucket_size | ||
+ | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
+ | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | unordered_(multi)map | ||
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 392: | Zeile 416: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 400: | Zeile 424: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 408: | Zeile 432: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> forward_list <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> forward_list <br> list <br> (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 416: | Zeile 440: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 424: | Zeile 448: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> list <br> (multi)map <br> set |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 432: | Zeile 456: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> list <br> (multi)map <br> (multi)set |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 448: | Zeile 472: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> list <br> map <br> queue <br> priority_queue | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> list <br> map <br> queue <br> priority_queue <br> (multi)set <br> stack <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 480: | Zeile 504: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 488: | Zeile 512: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map <br> queue <br> priority_queue | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map <br> queue <br> priority_queue <br> (multi)set <br> stack <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 496: | Zeile 520: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 504: | Zeile 528: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 512: | Zeile 536: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> list <br> (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 536: | Zeile 560: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 552: | Zeile 576: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> forward_list <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> forward_list <br> list <br> (multi)map <br> (multi)set <br> unordered_(multi)map |
+ | |- | ||
+ | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
+ | }} | ||
+ | |- | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | get_hash | ||
+ | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
+ | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | unordered_(multi)map | ||
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 560: | Zeile 592: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> list <br> (multi)map <br> set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 576: | Zeile 608: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map <br> (multi)set |
+ | |- | ||
+ | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
+ | }} | ||
+ | |- | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | key_eq | ||
+ | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
+ | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | unordered_(multi)map | ||
+ | |- | ||
+ | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
+ | }} | ||
+ | |- | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | load_factor | ||
+ | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
+ | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | unordered_(multi)map | ||
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 584: | Zeile 632: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map <br> (multi)set |
+ | |- | ||
+ | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
+ | }} | ||
+ | |- | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | max_bucket_count | ||
+ | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
+ | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | unordered_(multi)map | ||
+ | |- | ||
+ | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
+ | }} | ||
+ | |- | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | max_load_factor | ||
+ | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
+ | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | unordered_(multi)map | ||
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 592: | Zeile 656: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 608: | Zeile 672: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> forward_list <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | deque <br> forward_list <br> list <br> (multi)map <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 616: | Zeile 680: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> map <br> unordered_map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 624: | Zeile 688: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | queue <br> priority_queue | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | queue <br> priority_queue <br> stack |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 648: | Zeile 712: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | queue <br> priority_queue | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | queue <br> priority_queue <br> stack |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 672: | Zeile 736: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> list <br> (multi)map <br> (multi)set |
+ | |- | ||
+ | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
+ | }} | ||
+ | |- | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | rehash | ||
+ | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
+ | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
+ | | align="center" rowspan="2" style="background-color:#E2E2E2;" | unordered_(multi)map | ||
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 696: | Zeile 768: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> list <br> (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> list <br> (multi)map <br> (multi)set |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 712: | Zeile 784: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | forward_list <br> list | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | forward_list <br> list <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 728: | Zeile 800: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> list <br> (multi)map <br> queue <br> priority_queue | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> list <br> (multi)map <br> queue <br> priority_queue <br> (multi)set <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 760: | Zeile 832: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map <br> queue <br> priority_queue | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | array <br> deque <br> forward_list <br> list <br> (multi)map <br> queue <br> priority_queue <br> (multi)set <br> stack <br> unordered_(multi)map |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 768: | Zeile 840: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | priority_queue | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | priority_queue <br> stack |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 784: | Zeile 856: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map <br> (multi)set |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ||
Zeile 792: | Zeile 864: | ||
| align="left" style="background-color:#E2E2E2;" | Deklaration | | align="left" style="background-color:#E2E2E2;" | Deklaration | ||
| align="left" style="background-color:#E2E2E2;" | Erklärung | | align="left" style="background-color:#E2E2E2;" | Erklärung | ||
− | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map | + | | align="center" rowspan="2" style="background-color:#E2E2E2;" | (multi)map <br> (multi)set |
|- | |- | ||
! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| | ! align="center" style="background-color:#E2E2E2;" colspan="2" | {{Spoiler|'''Code-Beispiel'''| |
Version vom 29. November 2015, 20:55 Uhr
In der Spieleentwicklung ist es oft nötig, ein gewisse Menge an identischen Daten zu verwalten. Um die Verwaltung der Daten nicht nicht von Grund auf selber zu programmieren bietet die Standard Template Libary eine umfangreiche Sammlung an Kontainern, die das Verwalten der Daten erheblich erleichtert. Die Arbeitsweise und wofür die Verschiedenen Kontainer sind soll in diesem Artikel näher beschrieben werden.
Inhaltsverzeichnis |
Was ist ein Kontainer
Einen Kontainer kann man sich als Behältnis für Daten vorstellen, diese Daten werden auch Elemente genannt. Einen bekannter (nicht STL) Kontainer, den wohl jeder bereits kennt und benutzt hat, ist ein simples eindimenionales Array. Der Vorteil bei den STL Kontainer ist, dass die Anzahl der Elemente in den meinsten Fällen dynamisch wachsen können. Es spielt dabei keine Rolle ob diese Daten Structs, Klassen oder eines der Grunddatentypen sind. Wie das "Befüllen" mit Daten erfolgt, hängt aber vom Konatainer selber ab, da sich die Interne Datenstrukture von Kontainertyp zu Kontainertyp unterscheiden kann. Bedingt durch den Aufbau der Kontainer kann man diese in 3 Kategorien aufteilen:
- Sequentielle Kontainer
- Assoziative Kontainer
- Kontainer Adapter
Um die Verwaltung des benötigten Speichers, kümmern sich die Kontainer selber.
Sequentielle Kontainer
Die Daten in einem Sequentiellen Kontainer liegen in der Reihenfolge vor wie sie Eingefügt wurden. Das heist wurde ein Element als drittes hinzugefügt ist es auch später wieder an dieser stelle zu finden. Für Sequentielle Kontainer kann ein Iterator erstellt werde, der es ermöglicht alle Elemente des Kontainers über eine Schleife zu erreichen.
Zu den Sequentille Kontainer gehören:
- array
- deque
- forward_list
- list
- vector
Assoziative Kontainer
Die Assoziative Kontainer können weiter unterteilt werden in Map- und Set-Kontainer, sowie jeweils in eine multi Version. An welche Stelle im Kontainer die Elemente eingeordnet werden, kann über eine eigene Vergleichsfunktion bestimmt werden.
Mit C++11 wurden noch jeweils eine ungeordnete Versionen eingeführt. Ungeordnet heist in diesem Zusammenhang aber nur, dass nicht die Möglichkeit gegeben ist eine (eigene) Vergleichsfunktion einzusetzen. Intern arbeiten diese ungeordneten Kontainer mit Hashwerten, der Zugriff auf die Daten ist so wesentlich schneller. Es besteht aber die Möglichkeit einen eigenen Hash-Algorithmus einzusetzen, um die Reihenfolge der Daten festzulegen.
Der Zugriff auf ein Elemente kann bei allen Assoziative Kontainer über einen Schlüssel erfolgen. Die Map-Kontainer besitzen ein Schlüssel-Werte-Paar, Schlüssel und Wert können (müssen aber nicht) unterschiedliche Datentypen sein. Die Set-Kontainer besitzen lediglich den Schlüssel, der gleichzeitig auch den Wert darstellt. Der Schlüssel darf dabei nur einmalig im Kontainer vorkommen, es sei den es handelt sich um die multi Version, hier darf der Schlüssel mehrfach vorkommen.
Für Assoziative Kontainer kann ein Iterator erstellt werde, der es ermöglicht alle Elemente des Kontainers über eine Schleife zu erreichen.
Zu den Assoziative Kontainer gehören:
- map
- multimap
- unordered_map
- unordered_multimap
- set
- multiset
- unordered_set
- unordered_multiset
Kontaineradapter
Die Kontaineradapter sind spezielle Varianten von Sequentiellen Kontainer oder Assoziative Kontainer. Diese Kontainer sind auf besondere Aufgaben zugeschnitten, deshalb ist das Interface einfach gehalten und verzichtet auf Iteratoren.
Zu den Kontaineradapter gehören:
- priority_queue
- queue
- stack
Allgemeines
Die Kontainer der Standard Template Libary befinden sich im Namensraum std.
Klassen und Structs sollten Kopierbar sein, dass heißt einen public Kopierkonstruktor haben. Sind sie nicht Kopierbar, müssen die Structs oder Klassen Moveable sein, dieses funktioniert aber nur solange die Objekte nicht Kopiert werden. Moveable bedeutet in diesem Zusammenhang, dass die Klassen oder Structs einen Movekonstruktor benötigen, dann kann die Instanz der Klasse mit der Funktion std::move(T) herumgereicht werden.
Einige Kontainer benötigen bei bestimmten Operationen ein public default Konstruktor oder ein public Gleichheits-Operator, welche bei Klassen oder Structs dann Implementiert werden muss. Geordnete Assoziative Kontainer benötigen, von den Klassen und Structs, einen öffentlichen Vergleichs-Operator.
Header
In folgender Tabelle sind die Header ersichtlich, die Includiert werden müssen, damit der entsprechende Kontainer genutzt werden kann.
Kontainer Name | #include |
---|---|
array | <array> |
deque | <deque> |
forward_list | <forward_list> |
list | <list> |
vector | <vector> |
map | <map> |
multimap | |
unordered_map | <unordered_map> |
unordered_multimap | |
set | <set> |
multiset | |
unordered_set | <unordered_set> |
unordered_multiset | |
priority_queue | <queue> |
queue | <queue> |
stack | <stack> |
Klassenfunktionen
Funktion | Deklaration | Erklärung | Wer |
---|---|---|---|
assign |
1) void assign (InputIterator first, InputIterator last); |
1) Übernimmt vom Iterator first bis Iterator last alle Elemente |
deque forward_list list vector |
Code-Beispiel deque #include <deque> #include <iostream> int main() { int first = 1; int second = 2; int third = 3; std::deque<int> dequeContainer1, dequeContainer2, dequeContainer3; // 2) fügt 7 mal first in dequeContainer2 ein dequeContainer2.assign(7, first); // 1) fügt von dequeContainer2 die Elemente 2,3,4,5 und 6 in dequeContainer1 ein dequeContainer1.assign(dequeContainer2.begin() + 1, dequeContainer2.end() - 1); // 3) fügt die 3 Instanzen von intArray in dequeContainer3 ein int intArray[] = {first, second, third}; dequeContainer3.assign(intArray, intArray + 3); std::cout << dequeContainer1.size() << std::endl; std::cout << dequeContainer2.size() << std::endl; std::cout << dequeContainer3.size() << std::endl; return 0; } /* Ausgabe: 5 7 3 */ forward_list #include <forward_list> #include <iostream> int main() { int first = 1; int second = 2; int third = 3; std::forward_list<int> forwardListContainer1, forwardListContainer2; // 2) fügt 7 mal first in forwardListContainer2 ein forwardListContainer2.assign(7, first); // 1) fügt von forwardListContainer2 alle Elemente in forwardListContainer1 ein forwardListContainer1.assign(forwardListContainer2.begin(), forwardListContainer2.end()); // 3) fügt die 3 Instanzen von intArray in forwardListContainer2 ein int intArray[] = {first, second, third}; forwardListContainer2.assign(intArray, intArray + 3); // Ausgabe Inhalt std::cout << "forwardListContainer1: "; for(auto it = forwardListContainer1.begin(); it != forwardListContainer1.end(); ++it) std::cout << *it << " "; std::cout << std::endl; // Ausgabe Inhalt std::cout << "forwardListContainer2: "; for(auto it = forwardListContainer2.begin(); it != forwardListContainer2.end(); ++it) std::cout << *it << " "; return 0; } /* Ausgabe: forwardListContainer1: 1 1 1 1 1 1 1 forwardListContainer2: 1 2 3 */ list #include <list> #include <iostream> int main() { int first = 1; int second = 2; int third = 3; std::list<int> listContainer1, listContainer2; // 2) fügt 7 mal first listContainer2 ein listContainer2.assign(7, first); // 1) fügt von listContainer2 alle Elemente 1 in listContainer1 ein listContainer1.assign(listContainer2.begin(), listContainer2.end()); // 3) fügt die 3 Instanzen von intArray in listContainer2 ein int intArray[] = {first, second, third}; listContainer2.assign(intArray, intArray + 3); std::cout << "listContainer1 size: " << listContainer1.size() << std::endl; std::cout << "listContainer2 size: " << listContainer2.size() << std::endl; return 0; } /* Ausgabe: listContainer1 size: 7 listContainer2 size: 3 */ vector #include <vector> #include <iostream> int main() { int first = 1; int second = 2; int third = 3; std::vector<int> vectorContainer1, vectorContainer2; // 2) fügt 7 mal first vectorContainer2 ein vectorContainer2.assign(7, first); // 1) fügt von vectorContainer2 die Elemente 2,3,4,5 und 6 in vectorContainer1 ein vectorContainer1.assign(vectorContainer2.begin() + 1, vectorContainer2.end() - 1); // 3) fügt die 3 Instanzen von intArray in vectorContainer2 ein int intArray[] = {first, second, third}; vectorContainer2.assign(intArray, intArray + 3); std::cout << "vectorContainer1 size: " << vectorContainer1.size() << std::endl; std::cout << "vectorContainer2 size: " << vectorContainer2.size() << std::endl; return 0; } /* Ausgabe: vectorContainer1 size: 5 vectorContainer2 size: 3 */ | |||
at |
1) T& at (size_type n); |
Git das n-te Element zurück, bei 1) als Referenz bei 2) als Konstante Referenz |
array deque (multi)map unordered_map vector |
Code-Beispiel array #include <iostream> int main() { return 0; } deque #include <iostream> int main() { return 0; } map #include <iostream> int main() { return 0; } unordered_map #include <iostream> int main() { return 0; } vector #include <iostream> int main() { return 0; } | |||
back | Deklaration | Erklärung | array deque list back |
Code-Beispiel
| |||
befor_begin | Deklaration | Erklärung | forward_list |
Code-Beispiel
| |||
begin | Deklaration | Erklärung | array deque forward_list list (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
cbefor_begin | Deklaration | Erklärung | forward_list |
Code-Beispiel
| |||
bucket | Deklaration | Erklärung | unordered_(multi)map |
Code-Beispiel
| |||
bucket_count | Deklaration | Erklärung | unordered_(multi)map |
Code-Beispiel
| |||
bucket_size | Deklaration | Erklärung | unordered_(multi)map |
Code-Beispiel
| |||
cbegin | Deklaration | Erklärung | array deque forward_list list (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
cend | Deklaration | Erklärung | array deque forward_list list (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
clear | Deklaration | Erklärung | deque forward_list list (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
count | Deklaration | Erklärung | (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
crbegin | Deklaration | Erklärung | array deque list (multi)map set |
Code-Beispiel
| |||
crend | Deklaration | Erklärung | array deque list (multi)map (multi)set |
Code-Beispiel
| |||
data | Deklaration | Erklärung | array |
Code-Beispiel
| |||
emplace | Deklaration | Erklärung | deque list map queue priority_queue (multi)set stack unordered_(multi)map |
Code-Beispiel
| |||
emplace_after | Deklaration | Erklärung | forward_list |
Code-Beispiel
| |||
emplace_back | Deklaration | Erklärung | deque list |
Code-Beispiel
| |||
emplace_front | Deklaration | Erklärung | deque forward_list list |
Code-Beispiel
| |||
emplace_hint | Deklaration | Erklärung | (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
empty | Deklaration | Erklärung | array deque forward_list list (multi)map queue priority_queue (multi)set stack unordered_(multi)map |
Code-Beispiel
| |||
end | Deklaration | Erklärung | array deque forward_list list (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
equal_range | Deklaration | Erklärung | (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
erase | Deklaration | Erklärung | deque list (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
erase_after | Deklaration | Erklärung | forward_list |
Code-Beispiel
| |||
fill | Deklaration | Erklärung | array |
Code-Beispiel
| |||
find | Deklaration | Erklärung | (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
front | Deklaration | Erklärung | array deque forward_list list queue |
Code-Beispiel
| |||
get_allocator | Deklaration | Erklärung | deque forward_list list (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
get_hash | Deklaration | Erklärung | unordered_(multi)map |
Code-Beispiel
| |||
insert | Deklaration | Erklärung | deque list (multi)map set unordered_(multi)map |
Code-Beispiel
| |||
insert_after | Deklaration | Erklärung | forward_list |
Code-Beispiel
| |||
key_comp | Deklaration | Erklärung | (multi)map (multi)set |
Code-Beispiel
| |||
key_eq | Deklaration | Erklärung | unordered_(multi)map |
Code-Beispiel
| |||
load_factor | Deklaration | Erklärung | unordered_(multi)map |
Code-Beispiel
| |||
lower_bound | Deklaration | Erklärung | (multi)map (multi)set |
Code-Beispiel
| |||
max_bucket_count | Deklaration | Erklärung | unordered_(multi)map |
Code-Beispiel
| |||
max_load_factor | Deklaration | Erklärung | unordered_(multi)map |
Code-Beispiel
| |||
max_size | Deklaration | Erklärung | array deque forward_list list (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
merge | Deklaration | Erklärung | forward_list list |
Code-Beispiel
| |||
operator= | Deklaration | Erklärung | deque forward_list list (multi)map (multi)set unordered_(multi)map |
Code-Beispiel
| |||
operator[] | Deklaration | Erklärung | array deque map unordered_map |
Code-Beispiel
| |||
pop | Deklaration | Erklärung | queue priority_queue stack |
Code-Beispiel
| |||
pop_back | Deklaration | Erklärung | deque list |
Code-Beispiel
| |||
pop_front | Deklaration | Erklärung | deque forward_list list |
Code-Beispiel
| |||
push | Deklaration | Erklärung | queue priority_queue stack |
Code-Beispiel
| |||
push_back | Deklaration | Erklärung | deque list |
Code-Beispiel
| |||
push_front | Deklaration | Erklärung | deque forward_list list |
Code-Beispiel
| |||
rbegin | Deklaration | Erklärung | array deque list (multi)map (multi)set |
Code-Beispiel
| |||
rehash | Deklaration | Erklärung | unordered_(multi)map |
Code-Beispiel
| |||
remove | Deklaration | Erklärung | forward_list list |
Code-Beispiel
| |||
remove_if | Deklaration | Erklärung | forward_list list |
Code-Beispiel
| |||
rend | Deklaration | Erklärung | array deque list (multi)map (multi)set |
Code-Beispiel
| |||
resize | Deklaration | Erklärung | deque forward_list list |
Code-Beispiel
| |||
reverse | Deklaration | Erklärung | forward_list list unordered_(multi)map |
Code-Beispiel
| |||
shrink_to_fit | Deklaration | Erklärung | deque |
Code-Beispiel
| |||
size | Deklaration | Erklärung | array deque list (multi)map queue priority_queue (multi)set unordered_(multi)map |
Code-Beispiel
| |||
sort | Deklaration | Erklärung | forwart_list list |
Code-Beispiel
| |||
splice | Deklaration | Erklärung | list |
Code-Beispiel
| |||
splice_after | Deklaration | Erklärung | forwart_list |
Code-Beispiel
| |||
swap | Deklaration | Erklärung | array deque forward_list list (multi)map queue priority_queue (multi)set stack unordered_(multi)map |
Code-Beispiel
| |||
top | Deklaration | Erklärung | priority_queue stack |
Code-Beispiel
| |||
unique | Deklaration | Erklärung | forward_list list |
Code-Beispiel
| |||
upper_bound | Deklaration | Erklärung | (multi)map (multi)set |
Code-Beispiel
| |||
value_comp | Deklaration | Erklärung | (multi)map (multi)set |
Code-Beispiel
|
Laufzeitverhalten
Eine direkte Zeitangabe ist wenig sinvoll, da diese auch von der Hardware abhängig ist. Das Laufzeitverhalten beschreibt, wie sich der Zeitaufwand ändert, wenn sich die Anzahl der Elemente im Kontainer erhöt. Da es bei großen Projekten oft auch um Geschwindikeit geht, kann hier schon im Vorfeld die Richtige wahl, Refactoring vermeiden.
Bedeutung:
- O(1) - Konstante Laufzeit
- O(1)+ - nahezu Konstante Laufzeit (bei mehrfach verwendeten Schlüssel kann sich diese im worst case auch auf O(n) erhöhen)
- O(log n) - Logarithmischer zuwachs
- O(n) - linearer zuwaschs
- N/A - Kontainer bietet die angegebene Möglichkeit nicht
Kontainer Name | array | deque | forward_list | list | vector | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Beginn | Mitte | Ende | Beginn | Mitte | Ende | Beginn | Mitte | Ende | Beginn | Mitte | Ende | Beginn | Mitte | Ende | |
Element zugriff | O(1) | O(1) | O(1) | N/A | O(1) | N/A | O(1) | O(1) | |||||||
Element einfügen | N/A | O(1) | O(n) | O(1) | O(1) | O(n) | O(1) | O(n) | O(1) | O(n) | O(1) | ||||
Element löschen | N/A | O(1) | O(1) | O(n) | O(1) | O(1) | O(n | O(1) | O(n) | O(1) | |||||
Element finden | N/A |
Kontainer Name | map | multimap | unordered_map | unordered_multimap | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Beginn | Mitte | Ende | Beginn | Mitte | Ende | Beginn | Mitte | Ende | Beginn | Mitte | Ende | |
Element zugriff | O(log n) | O(log n) | O(1)+ | O(1)+ | ||||||||
Element einfügen | O(log n) | O(log n) | O(1)+ | O(1)+ | ||||||||
Element löschen | O(log n) | O(log n) | O(1)+ | O(1)+ | ||||||||
Element finden | O(log n) | O(log n) | O(1)+ | O(1)+ |
Kontainer Name | set | multiset | unordered_set | unordered_multiset | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Beginn | Mitte | Ende | Beginn | Mitte | Ende | Beginn | Mitte | Ende | Beginn | Mitte | Ende | |
Element zugriff | O(log n) | O(log n) | O(1)+ | O(1)+ | ||||||||
Element einfügen | O(log n) | O(log n) | O(1)+ | O(1)+ | ||||||||
Element löschen | O(log n) | O(log n) | O(1)+ | O(1)+ | ||||||||
Element finden | O(log n) | O(log n) | O(1)+ | O(1)+ |
Kontainer Name | priority_queue | queue | stack | ||||||
---|---|---|---|---|---|---|---|---|---|
Größter Wert | nicht Größter Wert | Beginn | Mitte | Ende | Beginn | Mitte | Ende | ||
Element zugriff | O(1) | N/A | O(1) | N/A | O(1) | O(1) | N/A | ||
Element einfügen | O(log n) | N/A | O(1) | O(1) | N/A | ||||
Element löschen | O(log n) | N/A | O(1) | N/A | O(1) | N/A | |||
Element finden | N/A |