Cómo eliminar duplicados de un vector en C++

En la programación es común trabajar con vectores, los cuales son estructuras de datos que contienen un conjunto de elementos. En ocasiones necesitamos eliminar elementos duplicados para que nuestro código funcione correctamente. En este artículo, aprenderemos cómo eliminar duplicados de un vector en el lenguaje de programación C++ utilizando diferentes enfoques.
Método 1: Utilizando std::unique
Implementación
Uno de los métodos más sencillos para eliminar duplicados en un vector es utilizar la función std::unique. Esta función recibe dos parámetros: el inicio del vector y el final del vector. La función retorna un iterador al nuevo final del vector, es decir, los elementos duplicados se trasladan al final del vector y se eliminan. Para eliminar los elementos duplicados, debemos utilizar la función erase junto con el iterador retornado por la función unique. A continuación, se muestra un ejemplo de cómo implementar este método:
#include
#include
std::vector
auto last = std::unique(v.begin(), v.end());
v.erase(last, v.end());
Explicación
En este ejemplo, se crea un vector de enteros llamado v con algunos elementos duplicados. Luego, se utiliza la función std:unique para eliminar los elementos duplicados. La función retorna un iterador last que apunta al nuevo final del vector. Por último, se utiliza la función erase para eliminar los elementos duplicados tras el último elemento único.
Método 2: Utilizando std::set
Implementación
Otro enfoque para eliminar duplicados en un vector es utilizar un conjunto de la clase std::set. Un conjunto es una estructura de datos que almacena elementos únicos en orden ascendente. En este caso, podemos crear un conjunto, copiar los elementos del vector al conjunto y luego copiar los elementos del conjunto al vector eliminando así los duplicados. El siguiente ejemplo muestra cómo implementar este método:
#include
#include
std::vector
std::set
v.assign(s.begin(), s.end());
Explicación
En este ejemplo, se crea un vector de enteros llamado v con algunos elementos duplicados. Luego, se utiliza la función std::set para almacenar los elementos únicos en un conjunto s. Después, los elementos únicos se copian en el vector original utilizando la función assign.
Método 3: Utilizando std::map
Implementación
Otro enfoque interesante para eliminar duplicados en un vector es utilizando un mapa de la clase std::map. Un mapa es una estructura de datos que almacena pares de valores clave-valor ordenados por la clave en orden ascendente. En este caso, podemos utilizar un mapa para almacenar cada elemento del vector como la clave y su frecuencia como el valor. A continuación, podemos copiar los elementos del mapa al vector original eliminando así los duplicados. El siguiente ejemplo muestra cómo implementar este método:
#include

Deja una respuesta