EVAP-2


 LIBRERÍAS EN C++

Breve introducción:

La STL (Biblioteca de Plantillas Estándar) es una colección de estructuras de datos y algoritmos de uso común. Está basada en plantillas utilizando programación genérica. Está diseñada para ser eficiente, evita el uso de funciones virtuales en favor de las plantillas evitando operaciones en tiempo de ejecución.
La STL se podría dividir en tres grandes partes: Contenedores (plantillas de estructuras de datos populares), iteradores y algoritmos.

Contenedor:

Los contenedores de la STL son estructuras de datos capaces de contener casi cualquier tipo de objeto (hay algunas restricciones). Existen 3 tipos de clases contenedoras: contenedores de primera claseadaptadores y casi-contenedores.
También podemos catalogar a los contenedores por el tipo. Existen 3 tipos de contenedores:Contenedores de secuenciaContenedores asociativos y Adaptadores de contenedores. Vamos a ver una tabla con los tipos de contenedores que hay.

Librería SET
En nuestro caso, la libreria SET, es de tipo contenedor asociativo (primera clase), de búsqueda rápida donde no se permiten duplicados.

El set<K> es una versión simplificada del map, donde solo guardamos claves, sin datos asociados.

Los SETS o conjuntos son los contenedores que almacenan elementos únicos siguiendo un orden específico. 

En un conjunto, el valor de un elemento también identifica que (el valor es en sí mismo la clave, de tipo T), y cada valor debe ser único. El valor de los elementos de un conjunto no puede ser modificada una vez en el recipiente (los elementos son siempre const), pero que puede ser insertado o retirado del recipiente. 

Internamente, los elementos de un conjunto siempre se ordenan siguiendo un estricto criterio específico de pedidos débil indica su objeto comparación interna (de tipo de comparación). 

Los contenedores set son generalmente más lentos que los contenedores unordered_set para acceder a los elementos individuales por su llave, pero permiten la iteración directa en subgrupos en función de su orden. 

Los conjuntos se implementan normalmente como árboles binarios de búsqueda.

Propiedades de contenedores:


  • Asociativo
         Los elementos en contenedores asociativos son referenciados por su llave y no por su posición absoluta en el set. 
  • Pedido 
         Los elementos en el contenedor siguen un orden estricto en todo momento. 
         Todos los elementos insertados se les da una posición en este orden. 
  • Set 
         El valor de un elemento es también la clave utilizada para identificarlo.
         Las claves son exclusivas.
         No hay dos elementos en el contenedor pueden tener claves equivalentes. 
  • Becario cuenta 
         El contenedor utiliza un objeto asignador para manejar dinámicamente sus necesidades de almacenamiento.


Función:


Sirve cuando queremos almacenar un conjunto de datos, pero no nos importa el orden, se comporta como un hash table, donde la key es el propio valor.

Ventajas:

  • Es más facil encontrar un elemento.
  • Ordena los valores automaticamente.

Inconvenientes:

  • Iterar secuencialmente los valores, es más dificil.
  • Es obligatorio que el tipo de datos almacenado, permita hacer comparaciones entre los datos (necesario para el sistema de almacenamiento, basado en ordenación).

Ejemplo 1:                                                                       Ejemplo 2:


                                    

No hay comentarios:

Publicar un comentario