Map
Tento príklad ukazuje použitie std::map v C++17 na ukladanie párov kľúč → hodnota, vyhľadávanie, mazanie a
iteráciu cez mapu.
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
// Deklarácia mapy, kde kľúč je string a hodnota je int
map<string, int> myMap;
// Vkladanie hodnôt pomocou operátora []
myMap["Alice"] = 25;
myMap["Bob"] = 30;
myMap["Charlie"] = 35;
// Alternatívne vkladanie pomocou insert()
myMap.insert({"David", 40});
myMap.insert(pair<string, int>("Eve", 28));
// Výpis obsahu mapy (zoradené podľa kľúča)
cout << "Obsah mapy:" << endl;
for (const auto &entry : myMap) {
cout << entry.first << " -> " << entry.second << endl;
}
// Vyhľadanie prvku v mape
string name = "Charlie";
if (myMap.find(name) != myMap.end()) {
cout << name << " sa nachádza v mape s hodnotou: " << myMap[name] << endl;
} else {
cout << name << " sa nenachádza v mape." << endl;
}
// Odstránenie prvku podľa kľúča
myMap.erase("Bob");
cout << "Po odstránení Boba:" << endl;
for (const auto &entry : myMap) {
cout << entry.first << " -> " << entry.second << endl;
}
// Veľkosť mapy
cout << "Veľkosť mapy: " << myMap.size() << endl;
return 0;
}Vysvetlenie kódu:
Deklarácia
std::map<string, int>map<string, int> myMap;std::mapuchováva páry kľúč → hodnota.- Kľúče sú unikátne a automaticky zoradené.
Vkladanie hodnôt:
- Pomocou operátora
[]:myMap["Alice"] = 25; myMap["Bob"] = 30; myMap["Charlie"] = 35; - Pomocou
insert():myMap.insert({"David", 40}); myMap.insert(pair<string, int>("Eve", 28));
- Pomocou operátora
Výpis obsahu mapy
for (const auto &entry : myMap) { cout << entry.first << " -> " << entry.second << endl; }entry.firstje kľúč.entry.secondje hodnota.std::mapuchováva údaje v zoradenom poradí podľa kľúča.
Vyhľadanie prvku (
find())if (myMap.find(name) != myMap.end()) { cout << name << " sa nachádza v mape s hodnotou: " << myMap[name] << endl; }find(kľúč)vráti iterátor na prvok aleboend(), ak neexistuje.
Odstránenie prvku (
erase())myMap.erase("Bob");erase(kľúč)odstráni prvok podľa kľúča.
Zistenie veľkosti (
size())cout << "Veľkosť mapy: " << myMap.size() << endl;size()vráti počet prvkov v mape.
Očakávaný výstup:
Obsah mapy:
Alice -> 25
Bob -> 30
Charlie -> 35
David -> 40
Eve -> 28
Charlie sa nachádza v mape s hodnotou: 35
Po odstránení Boba:
Alice -> 25
Charlie -> 35
David -> 40
Eve -> 28
Veľkosť mapy: 4