Unordered_multimap ::operator= es una función integrada en C++ STL que realiza tres tipos de tareas que se explican a continuación.
- Sintaxis (copiando elementos de diferentes contenedores):
unordered_multimap_name1 operator= (unordered_multimap_name2)
- Parámetros: La función no acepta ningún parámetro. El contenedor de la derecha es aquel desde el que se copiarán los elementos al contenedor de la izquierda.
Valor devuelto: No devuelve nada.
El siguiente programa ilustra la función anterior:
CPP
// C++ program to illustrate the // unordered_multimap::operator= #include <bits/stdc++.h> using namespace std; int main() { // declaration unordered_multimap<int, int> sample1, sample2; // inserts key and element // in sample1 sample1.insert({ 10, 100 }); sample1.insert({ 50, 500 }); cout << "Key and Elements of Sample1 before copy are:"; for (auto it = sample1.begin(); it != sample1.end(); it++) { cout << "{" << it->first << ", " << it->second << "} "; } cout << "\nThe size of sample2 before copy: " << sample2.size(); // operator= to copy sample2 = sample1; cout << "\nKey and Elements of Sample2 after copy are: "; for (auto it = sample2.begin(); it != sample2.end(); it++) { cout << "{" << it->first << ", " << it->second << "} "; } return 0; }
Producción:
Key and Elements of Sample1 before copy are:{50, 500} {10, 100} The size of sample2 before copy: 0 Key and Elements of Sample2 after copy are: {50, 500} {10, 100}
- Sintaxis (para mover elementos de diferentes contenedores):
unordered_multimap_name1 operator= (unordered_multimap_name2)
- Parámetros: La función no acepta ningún parámetro. El contenedor de la derecha es aquel desde el que se van a mover los elementos al contenedor de la izquierda. Los elementos del contenedor derecho se destruyen después de utilizar operator=.
Valor devuelto: No devuelve nada.
El siguiente programa ilustra la función anterior:
CPP
// C++ program to illustrate the // unordered_multimap::operator= #include <bits/stdc++.h> using namespace std; // Function to merge two lists unordered_multimap<char, char> merge(unordered_multimap<char, char> a, unordered_multimap<char, char> b) { unordered_multimap<char, char> temp(a); temp.insert(b.begin(), b.end()); return temp; } int main() { // declaration unordered_multimap<char, char> sample1, sample2, sample3; // inserts key and element // in sample1 sample1.insert({ 'a', 'A' }); sample1.insert({ 'g', 'G' }); // inserts key and element // in sample1 sample2.insert({ 'b', 'B' }); sample2.insert({ 'c', 'C' }); sample2.insert({ 'd', 'D' }); cout << "Key and Elements of Sample1 are: "; for (auto it = sample1.begin(); it != sample1.end(); it++) { cout << "{" << it->first << ", " << it->second << "} "; } cout << "\nKey and Elements of Sample2 are: "; for (auto it = sample2.begin(); it != sample2.end(); it++) { cout << "{" << it->first << ", " << it->second << "} "; } // merging and moved sample3 = merge(sample1, sample2); sample1 = sample3; cout << "\n\nKey and Elements of Sample1 are: "; for (auto it = sample1.begin(); it != sample1.end(); it++) { cout << "{" << it->first << ", " << it->second << "} "; } return 0; }
Producción:
Key and Elements of Sample1 are: {g, G} {a, A} Key and Elements of Sample2 are: {d, D} {b, B} {c, C} Key and Elements of Sample1 are: {c, C} {b, B} {d, D} {a, A} {g, G}
- Sintaxis (Para asignar los elementos de una lista diferente ):
unordered_multimap_name1 operator= (intitializer_list il)
- Parámetros: No acepta ningún parámetro, tiene la lista a la derecha que se le asignará al contenedor.
Valor devuelto: No devuelve nada.
El siguiente programa ilustra la función anterior:
CPP
// C++ program to illustrate the // unordered_multimap::operator= #include <bits/stdc++.h> using namespace std; int main() { // declaration by using operator= unordered_multimap<int, int> sample1 = { { 1, 2 }, { 3, 4 }, { 5, 6 } }; cout << "Key and Elements of Sample1 are: "; for (auto it = sample1.begin(); it != sample1.end(); it++) { cout << "{" << it->first << ", " << it->second << "} "; } // declaration by using operator= unordered_multimap<char, char> sample2 = { { 'a', 'A' }, { 'b', 'B' }, { 'c', 'C' } }; cout << "\n\nKey and Elements of Sample1 are: "; for (auto it = sample2.begin(); it != sample2.end(); it++) { cout << "{" << it->first << ", " << it->second << "} "; } return 0; }
Producción:
Key and Elements of Sample1 are: {5, 6} {3, 4} {1, 2} Key and Elements of Sample1 are: {c, C} {b, B} {a, A}