El std::unordered_map::swap() es una función integrada en C++ STL que intercambia los elementos de un contenedor a otro contenedor. Después de la llamada de esta función, los elementos de unordered_map llamado serán elementos de unordered_map llamado mientras que los elementos de unordered_map llamados serán elementos de unordered_map llamado.
El intercambio interno de elementos no se realiza, solo se cambia el tipo de referencia de ambos unordered_map.
Sintaxis
unordered_map.swap ( unordered_map& ump )
Tipo de retorno: el tipo de retorno de esta función es nulo.
Parámetros: Otro mapa_desordenado con el mismo tipo de elementos.
Complejidad: Su complejidad es constante.
Ejemplo 1
// C++ code to illustrate the method // unordered_map swap #include <bits/stdc++.h> using namespace std; int main() { unordered_map<int, int> sample1, sample2; // Map initialization sample1 = { { 2, 2 }, { 3, 4 }, { 4, 6 }, { 5, 8 } }; sample2 = { { 10, 11 }, { 12, 13 }, { 14, 15 }, { 26, 17 } }; // printing details before calling swap cout << " Elements of maps before swap \n"; cout << " Elements of first map are : \n"; for (auto& x : sample1) cout << x.first << " : " << x.second << endl; cout << " Elements of second map are : \n"; for (auto& x : sample2) cout << x.first << " : " << x.second << endl; // swapping sample1.swap(sample2); cout << " Elements of maps after swap \n"; cout << " Elements of first map are : \n"; for (auto& x : sample1) cout << x.first << " : " << x.second << endl; cout << " Elements of second map are : \n"; for (auto& x : sample2) cout << x.first << " : " << x.second << endl; return 0; }
Elements of maps before swap Elements of first map are : 5 : 8 4 : 6 3 : 4 2 : 2 Elements of second map are : 14 : 15 26 : 17 12 : 13 10 : 11 Elements of maps after swap Elements of first map are : 14 : 15 26 : 17 12 : 13 10 : 11 Elements of second map are : 5 : 8 4 : 6 3 : 4 2 : 2
Ejemplo 2
// C++ code to illustrate the method // unordered_map swap #include <bits/stdc++.h> using namespace std; int main() { unordered_map<char, int> sample1, sample2; // Map initialization sample1 = { { 'a', 2 }, { 'b', 4 }, { 'c', 6 }, { 'd', 8 } }; sample2 = { { 'e', 11 }, { 'f', 13 }, { 'h', 15 } }; // printing details before calling swap cout << " Elements of maps before swap \n"; cout << " Elements of first map are : \n"; for (auto& x : sample1) cout << x.first << " : " << x.second << endl; cout << " Elements of second map are : \n"; for (auto& x : sample2) cout << x.first << " : " << x.second << endl; // swapping sample1.swap(sample2); cout << " Elements of maps after swap \n"; cout << " Elements of first map are : \n"; for (auto& x : sample1) cout << x.first << " : " << x.second << endl; cout << " Elements of second map are : \n"; for (auto& x : sample2) cout << x.first << " : " << x.second << endl; return 0; }
Elements of maps before swap Elements of first map are : d : 8 c : 6 b : 4 a : 2 Elements of second map are : h : 15 f : 13 e : 11 Elements of maps after swap Elements of first map are : h : 15 f : 13 e : 11 Elements of second map are : d : 8 c : 6 b : 4 a : 2
Nota: el llamador y el llamado unordered_map deben contener el mismo tipo de elementos; de lo contrario, obtendremos un error de tiempo de compilación.
Publicación traducida automáticamente
Artículo escrito por ankit15697 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA