Las estructuras de los C ++ STL para mantener elementos en un orden específico se denominan conjuntos. Un conjunto debe tener componentes únicos. Cada elemento en un conjunto puede ser identificado por su valor individualmente, por lo que sirven como claves. En C ++, podemos agregar y eliminar elementos de un conjunto; Sin embargo, no podemos cambiar los valores de los componentes porque son estáticos después de ser colocados en el conjunto."
Definición de set en c++
Como ya se dice, los conjuntos son solo el tipo de contenedores de biblioteca de plantilla estándar utilizados en C ++ para almacenar artículos con precisión. Los conjuntos solo pueden someterse a los métodos de inserción y eliminación. En un objeto de tipo establecido, los elementos se organizan automáticamente en un orden especificado. No podemos cambiar o actualizar los valores de los componentes ya existentes en un conjunto porque los elementos en contenedores son inmutables. Al definirlo con precisión, un elemento en un conjunto sirve como clave para sí mismo. Los conjuntos solo están habilitados para contener un valor específico.
Cuándo utilizar conjuntos?
En la programación competitiva, los conjuntos se emplean ampliamente como contenedores. Cuando es necesario almacenar elementos de manera categorizada, podemos considerar utilizar conjuntos, pero tenga en cuenta que los conjuntos no permiten el almacenamiento de valores repetidos. Una vez que se ha ingresado, el valor no se puede cambiar.
Implementación de los conjuntos
Para interactuar con conjuntos, los 2 archivos de encabezado principales deben integrarse. Se accede a los conjuntos utilizando iteradores. Integre #include y #include en su código. Tenemos la opción de usar solo este archivo de encabezado en lugar de estos dos. La biblioteca sirve como sustituto de los archivos de encabezado mencionados anteriormente. Solo podemos emplear este archivo de encabezado porque incorpora todos los archivos de encabezado. Se están utilizando árboles de búsqueda binarios para definir conjuntos en un nivel interno.
Establecer características en C++
Los siguientes son algunos de los atributos de conjunto comunes en C ++:
Sintaxis del set
La siguiente es la declaración std :: set de la biblioteca "set":
Parámetros
Un contenedor establecido puede contener componentes únicos. Esto podría ser un objeto de función o un puntero de función. Menos es el valor predeterminado, y proporciona los mismos resultados que usar la expresión menos que la expresión (x Funciones en conjuntos En C ++, los conjuntos podrían someterse a una amplia variedad de operaciones. Evaluemos algunas de las técnicas de conjunto principal. Ejemplo no 1 En este caso, se inicializará un conjunto. En C ++, especificamos los diferentes tipos de elementos que se colocarán en un conjunto cuando se cree. Los puntos de datos de un conjunto generalmente se almacenan en orden ascendente. La función mayor podría usarse para mantener los datos en orden descendente. Conjunto en blanco Estas son numerosas técnicas para declarar un conjunto. Los archivos de encabezado y estarían integrados primero. Después de esto, se utilizará el espacio de nombres estándar. La función principal () se llamará. El primer conjunto se inicializará y será un conjunto vacío ya que no contiene ningún elemento. El segundo set será declarado como un conjunto vacío en orden descendente. El nuevo conjunto se inicializará agregando diferentes enteros. Este conjunto contiene cuatro elementos. Además, inicializaremos un nuevo conjunto llamado "S4" mediante el uso de otro conjunto, "S3". Proporcionamos los valores del S3 como los parámetros del S4. Ahora el conjunto será declarado a partir de una matriz. Especificamos los valores en la matriz y luego guardamos esos valores en una variable "A". El quinto conjunto contiene los 4 valores de la matriz. A continuación, definiremos el iterador de estos conjuntos requeridos. Adquiriríamos los valores de todos los conjuntos mediante el uso del bucle "para". Ejemplo no 2 Esta ilustración demuestra cómo funcionan los métodos de inserción y eliminación del conjunto. Las bibliotecas requeridas se incluirán al comienzo del programa. El espacio de nombres estándar se agregará como "STD". Ahora se invocará el método principal (). Declaramos diferentes conjuntos. Llamaríamos al método insert () para agregar los valores al conjunto. Se crearán diferentes punteros y llamados "P_1", "P_2" y "P_3". El iterador será declarado como estos punteros. La declaración "cout" se utilizará para representar la línea "Los valores del conjunto son". Ahora se utilizará el bucle "para" para mostrar todos los valores insertados del conjunto. El comienzo () se llamaría para iniciar los valores del conjunto que se imprimirán, y los métodos de end () se aplicarían para terminar los valores del conjunto. Estos métodos serán invocados dentro del bucle "para". El constructor del primer puntero se definirá dentro de la declaración "Cout". Ahora haremos otro conjunto organizando los valores en orden descendente. Los elementos del primer y segundo conjunto requeridos son los mismos. La función find () se llamaría a los elementos del primer conjunto definido. Esta función obtiene los valores definidos del conjunto. Ahora aplicaríamos el método ERASE () para eliminar los valores del primer conjunto. Los valores que se eliminarán son de 22 a 88. La instrucción "Cout" se usará para mostrar el texto "Los valores del conjunto después de usar la función ERASE ()". Para mostrar los valores, se utilizará el bucle "para". Entonces se declarará el constructor del primer puntero. Ahora utilizamos el bucle "para" para imprimir los elementos del segundo conjunto requerido. La instrucción "Cout" imprime la línea "Los valores del segundo conjunto son". Antes de agregar el comando "return 0", se creará el constructor de la variable iteradora. Ejemplo no 3 En este ejemplo, se utilizarán dos funciones, find () y borrarán. Si se identifica el elemento, el método find () produce un iterador que se refiere a él; de lo contrario, proporciona un iterador que se refiere al final del conjunto. Los elementos en el conjunto eliminarán con la ayuda de la función ERASE (). El programa incluirá las bibliotecas relevantes al principio llamadas . Se introducirá el espacio de nombres estándar como "STD". Ahora se realizará una referencia a la función principal (). Especifique el conjunto primero. Para incluir los valores en el conjunto, usaríamos la función insert (). El iterador será identificado como "I"; Los valores del conjunto apropiado se mostrarán utilizando el comando "Cout". El bucle "para" ahora se usará para mostrar todos los valores insertados del conjunto. La función begin () se usaría para comenzar a imprimir los valores del conjunto, y el método final () se usaría para terminar de imprimir los valores del conjunto. Estos métodos definidos se emplearían dentro del bucle "para". La declaración de "cout" declarará el constructor del iterador. El texto "Conjunto actualizado" se mostrará utilizando la instrucción CoUT. Los componentes del primer conjunto se determinarían utilizando la función find (). Los valores definidos se obtienen por esta función del conjunto. Para eliminar los valores del primer conjunto, ahora utilizaremos el método ERASE (). Se eliminarán hasta 25 valores. Usando un bucle "para", se presentarán los enteros restantes. La declaración "cout" proporcionará una declaración del constructor del iterador. Se llevarán a cabo operaciones de límite inferior y superior en los valores del conjunto. Los valores 45 y 17 del conjunto se proporcionarían a la función inferior de límite (), que luego usaría el comando "cout" para imprimir el resultado. Estos valores similares en el conjunto se tratarán a un método superior () de límite superior (). El valor de resultado será imprimido por el comando "cout". El comando "return 0" se agregará al final. Conclusión Hemos discutido las funciones de C ++ Set en esta guía. Similar a otros paquetes de biblioteca estándar, el conjunto de C ++ es crucial. Hace que sea más fácil para los desarrolladores extraer y manipular valores. Hemos implementado tres programas. La inicialización de los conjuntos se maneja en el primer ejemplo. El segundo muestra las adiciones y eliminaciones de valores del conjunto. En la instancia final, elegimos algunos valores del conjunto y luego los eliminamos.
#incluir
usando el espacio de nombres STD;
int main ()
sets1;
colocar
colocar
colocar
int ar [] = 15, 24, 75, 51;
establecer S5 (AR, AR+4);
set :: iterator i;
para (auto i = s5.comenzar(); i!= S5.end (); i ++)
cout<
regresar 1;
usando el espacio de nombres STD;
int main ()
establecer S1;
S1.insertar (22);
S1.insertar (33);
S1.insertar (56);
S1.insertar (9);
S1.insertar (67);
S1.insertar (47);
S1.insertar (88);
set :: iterator p_1, p_2, p_3;
cout<< " The values of the set are: \n" ;
para (p_1 = s1.comenzar() ; P_1 != S1.fin() ; P_1 ++)
cout<< *p_1 << " " ;
cout<
colocar
P_2 = S1.encontrar (22);
P_3 = S1.encontrar (88);
S1.borrar (p_2, p_3);
cout<< " The values of the set after using erase() function: \n " ;
para (p_1 = s1.comenzar() ; P_1 != S1.fin() ; P_1 ++)
cout<< *p_1 << " ";
cout<
para (i = s2.comenzar() ; i != S2.fin() ; i ++)
cout<< *i<< " ";
regresar 0;
usando el espacio de nombres STD;
int main ()
sets_1;
S_1.insertar (45);
S_1.insertar (12);
S_1.insertar (17);
S_1.insertar (89);
S_1.insertar (25);
S_1.insertar (14);
S_1.insertar (78);
S_1.insertar (34);
set :: iterator i;
cout<<"Values of required set: \n";
para (i = s_1.comenzar() ; i != S_1.fin() ; i ++)
cout<<*i<< " ";
cout<
S_1.borrar (S_1.begin (), s_1.encontrar (25));
para (i = s_1.comenzar() ; i!= S_1.fin() ; i ++)
cout<< *i<< " " ;
cout<
cout<< *s_1.lower_bound( 45 )<
cout<< *s_1.lower_bound( 17 ) <
cout<< *s_1.upper_bound( 45 ) <
cout<< *s_1.upper_bound( 17 ) <