A map egy speciális adatszerkezet, amely kulcs/érték formában tárol értékeket. Hasonló a tömbhöz, ahol index/érték formában tárolhatunk értékeket, de itt a kulcs bármilyen típus lehet (int, string, struct, stb).
Feladatok:
1. Készítsünk egy gyümölcs áradatbázist, minimum 15 gyümölccsel, ahol az illető gyümölcsök kgonkénti árát tároljuk. (a gyümölcsök nevét és az árát egy input.txt fileból olvassuk be). Majd készítsünk egy menüsort, ahol a felhasználó lekérheti egy gyümölcs árát, amit megad, kiírathatja az összes gyümölcs árát, vagy kiléphet a programból.
Megoldott feladatok:
1. Hozzunk létre egy gyümölcs áradatbázist, minimum 3 értékkel, majd írjuk ki az egészet. Utána olvassunk be a billentyűzetről egy gyümölcsöt s írjuk ki az árát!
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
// deklaralas
unordered_map <string, int> umap;
// kulcs-ertek parok letrehozasa
umap["alma"] = 5;
umap["barack"] = 20;
umap["cseresznye"] = 30;
// kiiras
for (auto it : umap)
cout << "A(z) " <<it.first << " ara: " << it.second << endl;
string gyumolcs;
cout << "melyik gyumolcs arara vagy kivancsi?";
cin >> gyumolcs;
cout << "Az altalad valasztott gyumolcs ara " << umap[gyumolcs];
return 0;
}
2. Olvassunk be egy szöveget és számoljuk meg és írjuk ki, hogy melyik szó hányszor fordul elő.
#include <iostream>
#include <string>
#include <fstream>
#include <unordered_map>
using namespace std;
int main() {
string szo;
unordered_map <string, int> szoSzamlalo;
ifstream in("input.txt");
while (in >> szo) {
szoSzamlalo[szo]++;
}
cout << "Szavak elofordulasa:" << endl;
for (auto par : szoSzamlalo) {
cout << par.first << " : " << par.second << " alkalommal" << endl;
}
return 0;
}