logo

Mapa a la biblioteca de plantilles estàndard (STL) de C++

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 gquiz2(gquiz1.begin(), gquiz1.end()); // imprimeix tots els elements del mapa gquiz2 cout<< ' The map gquiz2 after' << ' assign from gquiz1 is : '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // remove all elements up to // element with key=3 in gquiz2 cout << ' gquiz2 after removal of' ' elements less than key=3 : '; cout << ' KEY ELEMENT '; gquiz2.erase(gquiz2.begin(), gquiz2.find(3)); for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } // remove all elements with key = 4 int num; num = gquiz2.erase(4); cout << ' gquiz2.erase(4) : '; cout << num << ' removed '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // lower bound and upper bound for map gquiz1 key = 5 cout << 'gquiz1.lower_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; cout << 'gquiz1.upper_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; return 0; }>

>

>

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.