Unordered_set proporciona dos operadores en C++ STL. Estos son:
Sintaxis:
1. (unordered_set &lhs == unordered_set &rhs) 2. (unordered_set &lhs != unordered_set &rhs)
Estos operadores se analizan en detalle a continuación:
unordered_set == operador en C++ STL
El ‘==’ es un operador en C++ STL que realiza una operación de comparación de igualdad entre dos conjuntos desordenados y unordered_set::operator== es la función de operador correspondiente para el mismo.
Sintaxis:
(unordered_set &uset1 == unordered_set &uset2)
Parámetros: esta función de operador toma como referencia dos conjuntos desordenados uset1 y uset2 como parámetros que se van a comparar.
Valor devuelto: este método devuelve un valor de resultado booleano después de comparar los dos conjuntos. El procedimiento de comparación es el siguiente:
- En primer lugar se comparan sus tamaños.
- Entonces cada elemento en ust1 se busca en ust2
Si ambas condiciones se cumplen , se devuelve el valor verdadero y, en cualquier momento, si una condición no se cumple, se devuelve el valor falso .
El siguiente programa ilustra unordered_set::operator== en C++.
CPP
#include <iostream> #include <unordered_set> using namespace std; int main() { // Initialize three unordered sets unordered_set<int> sample1 = { 10, 20, 30, 40, 50 }; unordered_set<int> sample2 = { 10, 30, 50, 40, 20 }; unordered_set<int> sample3 = { 10, 20, 30, 50, 60 }; // Compare sample1 and sample2 if (sample1 == sample2) { cout << "sample1 and " << "sample2 are equal." << endl; } else { cout << "sample1 and " << "sample2 are not equal." << endl; } // Compare sample2 and sample3 if (sample2 == sample3) { cout << "sample2 and " << "sample3 are equal." << endl; } else { cout << "sample2 and " << "sample3 are not equal." << endl; } return 0; }
sample1 and sample2 are equal. sample2 and sample3 are not equal.
unordered_set != operador en C++ STL
El != es un operador relacional en C++ STL que compara la igualdad y desigualdad entre contenedores unordered_set. La Comparación se realiza en el siguiente procedimiento:
- Primero, se comparan los tamaños.
- Luego, cada elemento de uno de los contenedores se busca en el otro.
Sintaxis:
unordered_set1 != unordered_set2
Parámetros: este método toma los dos contenedores unordered_set unordered_set1 y unordered_set2 como los parámetros cuya igualdad debe verificarse.
Valor devuelto: este método devuelve
- verdadero: si ambos contenedores unordered_set a la izquierda y a la derecha del operador son iguales.
- falso: si los contenedores unordered_set a la izquierda y a la derecha del operador no son iguales.
Los siguientes ejemplos ilustran el operador !=:
Ejemplo:
CPP
// C++ program to illustrate // unordered_set operator!= #include <cstring> #include <iostream> #include <unordered_set> using namespace std; int main() { unordered_set<string> a = { "C++", "Java", "Python" }, b = { "Java", "Python", "C++" }, c = { "C#", "Python", "Java" }; if (a != b) { cout << "a and b are not equal\n"; } else { cout << "a and b are equal\n"; } if (a != c) { cout << "a and c are not equal\n"; } else { cout << "a and c are equal\n"; } return 0; }
a and b are equal a and c are not equal
unordered_set = operador en C++ STL
El ‘=’ es un operador en C++ STL que copia (o mueve) un conjunto_desordenado a otro conjunto_desordenado y conjunto_desordenado::operador= es la función de operador correspondiente. Hay tres versiones de esta función.
- La primera versión toma como referencia un conjunto_desordenado como argumento y lo copia en un conjunto_desordenado.
- La segunda versión realiza una asignación de movimiento, es decir, mueve el contenido de un conjunto_desordenado a otro conjunto_desordenado.
- La tercera versión asigna contenidos de una lista de inicializadores a un conjunto_desordenado.
Sintaxis
uset.operator= ( unordered_set& us ) uset.operator= ( unordered_set&& us ) uset.operator= ( initializer list )
Parámetros:
- La primera versión toma la referencia de un conjunto_desordenado como argumento.
- La segunda versión toma la referencia del valor r de un conjunto_desordenado como argumento.
- La tercera versión toma una lista de inicializadores como argumento.
Valor devuelto: Todos ellos devuelven el valor de este puntero(*este) .
El siguiente programa ilustra unordered_set::operator= en C++.
Programa:
CPP
// C++ code to illustrate the method // unordered_set::operator=() #include <iostream> #include <unordered_set> using namespace std; // merge function template <class T> T merge(T a, T b) { T t(a); t.insert(b.begin(), b.end()); return t; } int main() { unordered_set<int> sample1, sample2, sample3; // List initialization sample1 = { 7, 8, 9 }; sample2 = { 9, 10, 11, 12 }; // Merge both lists sample3 = merge(sample1, sample2); // copy assignment sample1 = sample3; // Print the unordered_set list for (auto it = sample1.begin(); it != sample1.end(); ++it) cout << *it << " "; cout << endl; for (auto it = sample2.begin(); it != sample2.end(); ++it) cout << *it << " "; cout << endl; for (auto it = sample3.begin(); it != sample3.end(); ++it) cout << *it << " "; cout << endl; }
10 11 12 7 8 9 12 11 10 9 10 11 12 7 8 9
Publicación traducida automáticamente
Artículo escrito por Pragya_Chaurasia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA