Mapa to taka tablica, ktora mozna indeksowac dowolnym typem, np stringiem. Pozwala to na napisanie takiego kodu:
std::unordered_map<string, string> slownik_en_pl;
slownik_en_pl["cat"] = "kot";
slownik_en_pl["dog"] = "pies";
// itd
cout << "cat to po polsku: " << slownik_en_pl["cat"] << endl;
Zastosowan jest masa:
std::unordered_map<char, int> wielkosci_dyskow;
wielkosci_dyskow['C'] = 1000;
wielkosci_dyskow['D'] = 328724;
std::unordered_map<string, double> wyniki_wyborow;
wyniki_wyborow["andrzej duda"] = 32.4212;
wyniki_wyborow["JKM"] = 4.76
std::pair to zwykla para liczb. Przydaje sie np gdy chcemy przeiterowac po mapie, gdzie kazdy element ma klucz i wartosc:
for (std::pair<string, double> wynik : wyniki_wyborow) {
cout << wynik.first << " zdobyl: " << wynik.second << endl;
}
Przeważnie nie jest jednak używany, bo zawsze łatwiej jest stworzyć klase składającą się z tych dwóch wartosci, której nazwa mowi jasno co te wartosci oznazcaja.
std::function to takie uogólnienie czegoś co mozna wywołać: funkcja, lambda, metoda. Kilka przykladow jest tutaj:
https://en.cppreference.com/w/cpp/utility/functional/function