MultiMap encontrar (), de límite distinto (), de límite superior () en C ++ STL

C ++ STL | MultiMap encontramos (), de límite distinto (), de límite superior () : En este tutorial, vamos a ver algunas funciones útiles en multimap C ++ STL junto con sus casos de aplicación y uso.

C ++ multimap :: find (), multimap :: límite distinto (), y multimap :: upper_bound () funciones

Multimapa se utiliza cuando se necesita para almacenar las mismas claves con valores distintos, donde el mapa deja de hacer lo mismo.

En este artículo, vamos a ver algunas funciones útiles en multimap.

multimap :: find () en C ++ STL

Del mismo modo, al igual que en el mapa, multimap nos proporciona una manera de buscar una clave.

La sintaxis de la función de búsqueda es como el de abajo,

iterator find(key);

Encuentra simplemente devuelve el iterador a la primera aparición de la llave si se produce la tecla. Si la clave no se produce en todos entonces vuelve iterador MultiMap :: end ().

En class de múltiples ocurrencias de la misma clave, sería class un iterador a la primera ocurrencia única.

Un ejemplo es el siguiente.

Say la myMap multimap ya construido es,

Key	Value
2 8
2 14
3 12
5 10
5 6

Ahora mymap.find (2) se case iterador mymap.begin () (como para el primer elemento). Cuando, mymap.find (7) se return mymap.end () como no se encuentra tecla ().

multimap :: límite distinto () en C ++ STL

Del mismo modo, al igual que en el mapa, multimap nos proporciona una manera de buscar una clave.

La sintaxis de la función de búsqueda es como el de abajo,

iterator lower_bound(key);

Encuentra simplemente devuelve el iterador a la primera aparición de la llave si se produce la tecla. Si el doesn clave y rsquo; t se producen en todo, entonces se devuelve un iterador al siguiente elemento mayor. Si la tecla es mayor que la máxima de la clave en el multimap se return un iterador de par & lt; valor_búsqueda, 0 & gt ;.

En return de múltiples ocurrencias de la misma clave, sería return un iterador a la primera ocurrencia única.

Un ejemplo es el siguiente.

Say la myMap multimap ya construido es,

Key	Value
2 8
2 14
3 12
5 10
5 6

Ahora mymap.lower_bound (2) se case iterador mymap.begin () (como para el primer elemento). Donde mymap.lower_bound (4) será return un iterador a la entrada & lt; 5,10 & gt; ya que no se encontró la llave y 5 es la siguiente tecla mayor.

multimap :: upper_bound () en C ++ STL

Del mismo modo, al igual que en el mapa, multimap nos proporciona una manera de buscar una clave.

La sintaxis de la función de búsqueda es como a continuación:

iterator upper_bound(key);

Encuentra simplemente devuelve el iterador a la siguiente clave del mayor buscados clave. Si el buscados clave es mayor que o igual a la clave max presente en la multimap entonces se devuelve un iterador de par & lt; valor_búsqueda, 0 & gt ;.

Un ejemplo es el siguiente.

Say la myMap multimap ya construido es

Key	Value
2 8
2 14
3 12
5 10
5 6

Ahora mymap.upper_bound (2) se return iterador a par & lt; 3,12 & gt; (3 es siguiente tecla mayor de 2). Cuando, mymap.lower_bound (5) se return iterador a la entrada & lt; 5,0 & gt; como el próximo doesn y rsquo clave mayor; t existen return 5. & nbsp; & nbsp;

también algunas otras funciones triviales son: el tamaño () y count () cuyos usos son exactamente igual que el mapa.

C ++ aplicación del hallazgo multimap (), de límite distinto (), de límite superior ()

#include <bits/stdc++.h>
using namespace std;
int main()
{
multimap<int, int> mymultimap;
// insertion in multimap
cout << "Inserting like above examplen";
mymultimap.insert(make_pair(5, 10));
mymultimap.insert(make_pair(2, 8));
mymultimap.insert(make_pair(3, 12));
mymultimap.insert(make_pair(2, 14));
mymultimap.insert(make_pair(5, 6));
cout << "Printing the multimapn";
multimap<int, int>::iterator ij;
for (ij = mymultimap.begin(); ij != mymultimap.end(); ij++) {
cout << "key: " << ij->first << " ,value: " << ij->second << endl;
}
cout << "finding key 3n";
ij = mymultimap.find(3);
cout << "key: " << ij->first << " ,value: " << ij->second << endl;
cout << "finding lower bound for 1n";
ij = mymultimap.lower_bound(1);
cout << "key: " << ij->first << " ,value: " << ij->second << endl;
cout << "finding lower bound for 2n";
ij = mymultimap.lower_bound(2);
cout << "key: " << ij->first << " ,value: " << ij->second << endl;
cout << "finding lower bound for 5n";
ij = mymultimap.lower_bound(5);
cout << "key: " << ij->first << " ,value: " << ij->second << endl;
cout << "finding lower bound for 6n";
ij = mymultimap.lower_bound(6);
cout << "key: " << ij->first << " ,value: " << ij->second << endl;
cout << "finding upper bound for 1n";
ij = mymultimap.upper_bound(1);
cout << "key: " << ij->first << " ,value: " << ij->second << endl;
cout << "finding upper bound for 2n";
ij = mymultimap.upper_bound(2);
cout << "key: " << ij->first << " ,value: " << ij->second << endl;
cout << "finding upper bound for 5n";
ij = mymultimap.upper_bound(5);
cout << "key: " << ij->first << " ,value: " << ij->second << endl;
cout << "finding upper bound for 6n";
ij = mymultimap.upper_bound(6);
cout << "key: " << ij->first << " ,value: " << ij->second << endl;
return 0;
}

Salida:

Inserting like above example
Printing the multimap
key: 2 ,value: 8
key: 2 ,value: 14
key: 3 ,value: 12
key: 5 ,value: 10
key: 5 ,value: 6
finding key 3
key: 3 ,value: 12
finding lower bound for 1
key: 2 ,value: 8
finding lower bound for 2
key: 2 ,value: 8
finding lower bound for 5
key: 5 ,value: 10
finding lower bound for 6
key: 5 ,value: 0
finding upper bound for 1
key: 2 ,value: 8
finding upper bound for 2
key: 3 ,value: 12
finding upper bound for 5
key: 5 ,value: 0
finding upper bound for 6
key: 5 ,value: 0


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *