94 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			94 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Set | ||
|  | localeTitle: Conjunto | ||
|  | --- | ||
|  | Una estructura de datos de conjunto en c ++ se define de la misma manera que un conjunto se define en el contexto de las matemáticas. | ||
|  | 
 | ||
|  | Más formalmente hablando, los Conjuntos son un tipo de contenedores asociativos en los que cada elemento tiene que ser único. | ||
|  | 
 | ||
|  | *   El valor del elemento no se puede modificar una vez que se ingresa, aunque se permite eliminar un elemento e insertar un nuevo elemento, de la misma manera que lo hacemos en matemáticas. | ||
|  | *   Establecer la estructura de datos se puede utilizar para modelar, bueno, se configura a sí mismo. Se hace fácil encontrar intersecciones, uniones etc. | ||
|  | *   Similar al vector, pero solo se permiten valores únicos. | ||
|  | *   El conjunto organiza los elementos en orden creciente a medida que se insertan elementos en el conjunto. | ||
|  | 
 | ||
|  | El archivo de encabezado requerido para usar la estructura de datos establecida es 'conjunto'. es decir, `#include<set>` debe estar allí en su código para que pueda utilizar la estructura de datos establecida. | ||
|  | 
 | ||
|  | `#include<bits/stdc++.h>` **profesional** : use `#include<bits/stdc++.h>` para incluir todas las funciones y estructuras de datos de C ++, en lugar de agregarlas una por una.   | ||
|  | Algunas de las funciones que se pueden realizar con un conjunto: | ||
|  | 
 | ||
|  | 1.  begin (): devuelve un iterador al primer elemento del conjunto | ||
|  | 2.  end (): devuelve un iterador al elemento teórico que sigue al último elemento del conjunto | ||
|  | 3.  size () - Devuelve el número de elementos en el conjunto | ||
|  | 4.  max\_size (): devuelve el número máximo de elementos que puede contener el conjunto | ||
|  | 5.  vacío () - Devuelve si el conjunto está vacío | ||
|  | 6.  borrar (const g): elimina el valor 'g' del conjunto | ||
|  | 7.  clear () - Elimina todos los elementos del conjunto | ||
|  | 
 | ||
|  | Veamos un ejemplo: | ||
|  | 
 | ||
|  | ```cpp | ||
|  | #include <iostream> 
 | ||
|  |  #include <set>  | ||
|  |  #include <iterator>  | ||
|  |   | ||
|  |  using namespace std;  | ||
|  |  int main()  | ||
|  |  {  | ||
|  |     set <int> myset;   //an empty set container. Note that size of the set need not be declared, similar to vector.  | ||
|  |   | ||
|  |     // insert elements in random order  | ||
|  |     myset.insert(65);  | ||
|  |     myset.insert(30);  | ||
|  |     myset.insert(80);  | ||
|  |     myset.insert(20);  | ||
|  |     myset.insert(9);  | ||
|  |     myset.insert(9); // only one 9 will be added to the list.  | ||
|  |   | ||
|  |   | ||
|  |     // printing set myset  | ||
|  |     set <int> :: iterator itr; //an iterator is like a pointer.  | ||
|  |     cout << "\nThe contents of myset : ";  | ||
|  |     for (itr = myset.begin(); itr != myset.end(); ++itr)  | ||
|  |     {  | ||
|  |         cout << '\t' << *itr;  | ||
|  |     }  | ||
|  |     cout << endl;  | ||
|  |   | ||
|  |   | ||
|  |     // remove all elements up to 65 in myset from the beginning:-  | ||
|  |     cout << "\nContents of myset after removal of elements less than 30 : ";  | ||
|  |     myset.erase(myset.begin(), myset.find(30));  | ||
|  |     for (itr = myset.begin(); itr != myset.end(); ++itr)  | ||
|  |     {  | ||
|  |         cout << '\t' << *itr;  | ||
|  |     }  | ||
|  |   | ||
|  |     // remove element with value 50 in myset  | ||
|  |   | ||
|  |     int num = myset.erase(80); //returns true (and deletes) if 80 is there in the list else returns 0.  | ||
|  |     cout<<"\n\n After doing myset.erase(80), "<<num<<" element is removed\n\n";  | ||
|  |     cout<<"Contents of the modified set:\t";  | ||
|  |     for (itr = myset.begin(); itr != myset.end(); ++itr)  | ||
|  |     {  | ||
|  |         cout << '\t' << *itr;  | ||
|  |     }  | ||
|  |   | ||
|  |     cout << endl;  | ||
|  |   | ||
|  |   | ||
|  |     return 0;  | ||
|  |   | ||
|  |  }  | ||
|  | ``` | ||
|  | 
 | ||
|  | \`\` \`cpp Salida:- Los contenidos de myset: 9 20 30 65 80. | ||
|  | 
 | ||
|  | Contenido de myset después de la eliminación de elementos menores de 30: 30 65 80 | ||
|  | 
 | ||
|  | Después de hacer myset.erase (80), se elimina 1 elemento. | ||
|  | 
 | ||
|  | Contenido del conjunto modificado: 30 65. \`\` \` | ||
|  | 
 | ||
|  | \### Fuentes | ||
|  | 
 | ||
|  | 1.  [Geeks para Geeks](https://www.geeksforgeeks.org/set-in-cpp-stl/) |