Els mapes ho són contenidors associatius que emmagatzemen elements de manera mapeada. Cada element té un valor clau i un valor assignat. No hi ha dos valors assignats que tinguin els mateixos valors clau.
std::map és la plantilla de classe per als contenidors de mapes i es defineix dins del fitxer de capçalera.
Funcions bàsiques dels membres std::map
Algunes funcions bàsiques associades a std::map són:
- començar () – Retorna un iterador al primer element del mapa.
- final() – Retorna un iterador a l'element teòric que segueix l'últim element del mapa.
- mida () – Retorna el nombre d'elements del mapa.
- mida_màx () – Retorna el nombre màxim d'elements que pot contenir el mapa.
- buit() – Retorna si el mapa està buit.
- insertar parell (valor clau, valor de mapa) – Afegeix un nou element al mapa.
- esborrar (posició de l'iterador) – Elimina l'element a la posició assenyalada per l'iterador.
- esborrar (const g) – Elimina el valor-clau 'g' del mapa.
- clar () – Elimina tots els elements del mapa.
Exemples de std::map
Els exemples següents mostren com realitzar operacions bàsiques als contenidors de mapes.
Exemple 1: funció begin() i end().
C++
// C++ program to illustrate the begin and end iterator> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>mp; // Insereix alguns valors al mapa mp['one'] = 1; mp['dos'] = 2; mp['tres'] = 3; // Obteniu un iterador que apunta al primer element del // mapint>::iterator it = mp.begin(); // Itera pel mapa i imprimeix els elements mentre (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }> |
sumador ple
>
>Sortida
Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>
Complexitat del mètode anterior:
Complexitat temporal: O(n) on n és la mida del mapa.
Espai auxiliar: O(n)
Exemple 2: funció size().
C++
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>mapa; // Insereix alguns valors al mapa del mapa['un'] = 1; mapa['dos'] = 2; mapa['tres'] = 3; // Imprimeix la mida del mapa<< 'Size of map: ' << map.size() << endl; return 0; }> |
>
>Sortida
Size of map: 3>
Complexitat del mètode anterior:
Complexitat temporal: O(1).
Exemple 3: Implementació del mapa
CPP
codis d'error de Linux
// CPP Program to demonstrate the implementation in Map> // divyansh mishra -->divyanshmishra101010> #include> #include> #include> using> namespace> std;> int> main()> {> >// empty map container> >map<>int>,>int>>gquiz1;> >// insert elements in random order> >gquiz1.insert(pair<>int>,>int>>(1, 40));> >gquiz1.insert(pair<>int>,>int>>(2, 30));> >gquiz1.insert(pair<>int>,>int>>(3, 60));> >gquiz1.insert(pair<>int>,>int>>(4, 20));> >gquiz1.insert(pair<>int>,>int>>(5, 50));> >gquiz1.insert(pair<>int>,>int>>(6, 50));> >// another way of inserting a value in a map> >gquiz1[7] = 10;> >// printing map gquiz1> >map<>int>,>int>>::iterador itr;> >cout <<>'
The map gquiz1 is :
'>;> >cout <<>' KEY ELEMENT
'>;> >for> (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {> >cout <<>' '> ' ' << '
'; } cout << endl; // assigning the elements from gquiz1 to gquiz2 map |
>
>Sortida
tipus de dades en java
The map gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 The map gquiz2 after assign from gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 gquiz2 after remov...>
Complexitat del mètode anterior:
Complexitat temporal: O(n log(n)) ja que n és la mida del mapa
Espai auxiliar: O(n)
Exemple 4: Implementació del mapa de nombres enters
C++
// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>mapa; // Insereix alguns valors al mapa del mapa['un'] = 1; mapa['dos'] = 2; mapa['tres'] = 3; // Imprimeix els valors al mapa cout<< 'Key: one, Value: ' << map['one'] << endl; cout << 'Key: two, Value: ' << map['two'] << endl; cout << 'Key: three, Value: ' << map['three'] << endl; // Check if a key is in the map if (map.count('four')>0) { cout<< 'Key 'four' is in the map' << endl; } else { cout << 'Key 'four' is not in the map' << endl; } return 0; }> |
>
els 10 millors hentai
>Sortida
Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>
Llista de totes les funcions de std::map
La taula següent conté totes les funcions definides dins de la classe std::map.
| Funció | Definició |
|---|---|
| map::insert() | Insereix elements amb una clau particular al contenidor del mapa -> O(log n) |
| mapa:: comptar() | Retorna el nombre de coincidències a l'element amb el valor-clau 'g' al mapa. –> O (log n) |
| mapa equal_range() | Retorna un iterador de parells. La parella fa referència als límits d'un rang que inclou tots els elements del contenidor que tenen una clau equivalent a k. |
| esborrar mapa () | S'utilitza per esborrar elements del contenidor -> O (log n) |
| mapa rend() | Retorna un iterador invers que apunta a l'element teòric just abans del primer parell clau-valor del mapa (que es considera l'extrem invers). |
| mapa rbegin()
| Retorna un iterador invers que apunta a l'últim element del mapa. |
| cerca del mapa () | Retorna un iterador a l'element amb el valor-clau 'g' al mapa si es troba, en cas contrari torna l'iterador al final. |
| map crbegin() i crend() | crbegin() retorna un iterador invers constant que fa referència a l'últim element del contenidor del mapa. crend() retorna un iterador invers constant que apunta a l'element teòric abans del primer element del mapa. |
| mapa cbegin() i cend() | cbegin() retorna un iterador constant que fa referència al primer element del contenidor del mapa. cend() retorna un iterador constant que apunta a l'element teòric que segueix l'últim element del multimapa. |
| mapa emplace() | Insereix la clau i el seu element al contenidor del mapa. |
| mida_màx del mapa() | Retorna el nombre màxim d'elements que pot contenir un contenidor de mapes -> O(1) |
| mapa upper_bound() | Retorna un iterador al primer element que és equivalent al valor assignat amb el valor-clau 'g' o sens dubte anirà després de l'element amb el valor-clau 'g' al mapa repositori maven |
| operador de mapa= | Assigna el contingut d'un contenidor a un contenidor diferent, substituint el seu contingut actual. |
| mapa low_bound() | Retorna un iterador al primer element que és equivalent al valor assignat amb el valor-clau 'g' o definitivament no anirà abans de l'element amb el valor-clau 'g' al mapa -> O(log n) |
| mapa emplace_hint() | Insereix la clau i el seu element al contenidor del mapa amb una pista donada. |
| map value_comp() | Retorna l'objecte que determina com estan ordenats els elements del mapa ('<' per defecte). |
| mapa key_comp() | Retorna l'objecte que determina com estan ordenats els elements del mapa ('<' per defecte). |
| mapa::mida() | Retorna el nombre d'elements del mapa. |
| mapa::buit() | Retorna si el mapa està buit |
| map::begin() i end() | begin() retorna un iterador al primer element del mapa. end() retorna un iterador a l'element teòric que segueix l'últim element del mapa |
| mapa::operador[] | Aquest operador s'utilitza per fer referència a l'element present a la posició donada dins de l'operador. |
| mapa::clear() | Elimina tots els elements del mapa. |
| map::at() i map::swap() | La funció at() s'utilitza per retornar la referència a l'element associat a la clau k. La funció swap() s'utilitza per intercanviar el contingut de dos mapes, però els mapes han de ser del mateix tipus, encara que les mides poden ser diferents. |