Cómo eliminar duplicados en un vector C ++ y también si solo quiero elementos duplicados

Puede usar std :: sort first [1].
Entonces te sugiero que uses std :: unique [2]

El código ha sido tomado del enlace dado en la nota al pie [3]

ENCABEZADOS REQUERIDOS

CÓDIGO

Tenga en cuenta que este es un código de muestra y es posible que deba realizar pequeños y pequeños cambios.

#include
#include
#include

int main ()
{
std :: vector v {1,2,3,1,2,3,3,4,5,4,5,6,7};
std :: sort (v.begin (), v.end ());
auto last = std :: unique (v.begin (), v.end ());
v.erase (último, v.end ());
para (const auto & i: v)
std :: cout << i << "";
std :: cout << "\ n";
}

Ahora puedes implementar algo similar.

NOTA

  1. Sobrecargue el operador EqualTo (==) en su clase
  2. Por favor, también SOBRECARGA otros operadores de comparación
  3. Para más detalles, consulte aquí [4]
    Código de muestra

operador bool en línea == (const X y lhs, const X y rhs)
{
// Realizar verificación AQUÍ
}
operador en línea bool! = (const X y lhs, const X y rhs) {
volver! (lhs == rhs);
}

Notas al pie

[1] std :: sort – cppreference.com

[2] http://en.cppreference.com/w/cpp…

[3] Eliminar entradas duplicadas en un vector C ++

[4] sobrecarga del operador

Para la pregunta básica “¿cómo encuentro elementos duplicados …”

Puede usar un bucle for anidado para encontrar los valores duplicados en el vector.

Por ejemplo:

for (int i = 0; i para (int j = i + 1; j if (vector [i] == vector [j]) {
cout << "Valor duplicado" << valor
<< "en los índices" << i << "," << j << endl;
}
}
}

Para el objetivo subyacente …

O bien, reestructurar como un “tipo” seguido de “único”, o pasar por el vector construyendo un “std :: set”, o simplemente pasar por el vector, mantener un segundo contenedor “visto” (podría ser una lista, un conjunto, un vector ), coloque cada miembro en “visto” después de enviarlo, solo envíelo si no está en “visto”.

O agregue una bandera “visto” a la clase “Pedir prestado”.

//–CÓDIGO—
#include
#include
#include

void removeDuplicates (std :: vector & vec)
{

std :: sort (vec.begin (), vec.end ());
vec.erase (std :: unique (vec.begin (), vec.end ()), vec.end ());
}

int main ()
{

std :: vector vec (10);
vec.push_back (20); vec.push_back (20);
vec.push_back (30); vec.push_back (20);
std :: copy (vec.begin (), vec.end (), std :: ostream_iterator
(std :: cout, “\ t”));
removeDuplicates (vec);
std :: cout << std :: endl;
std :: copy (vec.begin (), vec.end (), std :: ostream_iterator
(std :: cout, “\ t”));
}

-learningcppisfun.blogspot

Espero que esto te ayude.

More Interesting

¿Cuál es la principal ventaja de utilizar la búsqueda de profundización iterativa en comparación con la búsqueda de amplitud primero?

Si estoy usando Java para la codificación competitiva, ¿tendré problemas de tiempo más tarde por parte de jueces en línea cuando me sumerja en estructuras de datos y algoritmos?

Cómo encontrar todos los palíndromos posibles que se pueden generar usando las letras de una cadena dada

¿Debo tomar un curso de estructura de datos y algoritmos antes de aprender cualquier lenguaje de programación? ¿Es importante entender la programación?

Cómo traducir mis pensamientos en código

¿Cuál es el significado de matriz redimensionable en arraylist?

¿Qué algoritmo de compresión de imagen se usa en WhatsApp?

¿Cómo crean los algoritmos los programadores de software?

Creo que soy de mente recursiva. No quiero pero observo mi pensamiento mientras estoy pensando en resolver cualquier problema. Y no encuentra solución. ¿Qué hacer?

¿Cuál es el algoritmo que utilizan los ferrocarriles indios para la confirmación de un boleto de espera? ¿Cuál es la mejor manera de confirmar un boleto cuando hay una gran lista de espera?

¿Cómo debería abordar la mejora de mi algoritmo, si mi conjunto de pruebas arroja malos resultados?

¿Cuál es la diferencia entre el algoritmo codicioso y la programación dinámica? ¿Es un programa codicioso un subconjunto de programación dinámica?

¿Se utiliza una estructura de datos de pila para algoritmos multirecursionales?

¿Cuál es la mejor optimización de código con menos líneas?

¿Por qué necesitamos el término de sesgo en algoritmos ML como la regresión lineal y las redes neuronales?