elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Vectores c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Vectores c++  (Leído 4,361 veces)
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Vectores c++
« en: 11 Julio 2012, 20:15 pm »

Estoy comenzando ocn esto de los vectores y me gustaria saver como puedo crear un vector que de una sequencia de numeros encuentre 2 numeros que sean iguales.

Ejemplo:

Primero le dices la cantidad de numeros que hay en esa sequencia por ejemplo 9

y despues pones alguna sequencia cualquiera como

1 2 3 4 5 6 7 8 2 9

y en este caso el vector tendria que indicar que hay 2 numeros iguales .

Espeor k me puedan ayudar lo antes posible

Muchas gracias.


En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Vectores c++
« Respuesta #1 en: 11 Julio 2012, 20:23 pm »

Puedes usar dos bucles for anidados:
Código
  1. for(int i=0;i<tamanovector;i++){
  2. for(int j=0; j<tamanovector-1; j++){
  3.  if vector[i]==vector[j]{
  4.   printf("Se repiten");
  5.   break;
  6. }
  7.  else continue;
  8. }
  9.  
  10. }
  11.  

Creo que funcionaria, pero lo he improvisado.

Saludos.


En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Vectores c++
« Respuesta #2 en: 11 Julio 2012, 20:25 pm »

Muchas gracias

Gracais X2 por la velocidad jaja

Ahora lo voi a provar
En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Vectores c++
« Respuesta #3 en: 11 Julio 2012, 21:49 pm »

Bueno lo prove y va a medias lo pase a c++ por k me daba errores y ahora aver si puedo decir cuantas veces se repitio ese numero.

En línea

Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: Vectores c++
« Respuesta #4 en: 14 Julio 2012, 18:51 pm »

@daniyo → En general, así no se usan los vectores en C++, eso luce mucho a simple código C ...  si bien es legal, en general se usa la librería estándar de C++

Tenes varias formas de hacerlo, las que me llegan a la cabeza:
 
* Usando los operadores size,at (o el operador [] que esta sobrecargado)  de std::vector
* Recorrer el vector como un container usando iteradores (begin y end) con fors anidados
* Usando std::sort y std::adjacent_find
* Usando std::count
* std::map ?

Yo voy a poner la tercera (que no es la mas facil, pero tampoco la mas compleja) ... pero te diría que experimentes con las otras :D

Código
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. using namespace std; // no abusar de esto !
  6.  
  7. int main(int argc, char** argv)
  8. {
  9.    //1 2 3 4 5 6 7 8 2 9
  10.    vector<int> numVector;
  11.        numVector.push_back(1);
  12.        numVector.push_back(2);
  13.        numVector.push_back(3);
  14.        numVector.push_back(4);
  15.        numVector.push_back(5);
  16.        numVector.push_back(6);
  17.        numVector.push_back(7);
  18.        numVector.push_back(8);
  19.        numVector.push_back(2);
  20.        numVector.push_back(9);
  21.  
  22.   sort(numVector.begin(),numVector.end()); // Ordenamos
  23.    vector<int>::iterator Iterator = adjacent_find(numVector.begin(),numVector.end(), equal_to<int>());  // Usamos busqueda de adyacente, usando equal_to para comparar
  24.  
  25.  if (*Iterator) cout << "Numero repetido : " << *Iterator << endl;
  26.  
  27.    return 0;
  28. }
  29.  
  30.  

En el nuevo estandar C++ aprobado (C++11), esto se puede hacer facilmente con for de rango (cuando veas lo simplificados que estan los fors, no vas a querer ver los viejos fors, nunca, pero nunca mas), for_each (usando lambdas), eeeeeeeeeetc ... la creatividad no tiene limites (y menos con C++11 =D ).

Un ejemplo con un minimo toque de C++11 (solo ranged fors) ... que es bastante ineficiente (se re-recorre asquerosamente el vector de manera innecesaria),  pero sacrificamos esa eficiencia para tener algo mas potable a los ojos:

Código
  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4. #include <algorithm>
  5.  
  6. using namespace std; // no abusar de esto !
  7.  
  8. int main(int argc, char** argv)
  9. {
  10.    map<int,int> mapNumbers;
  11.    vector<int> vecNumbers;
  12.        vecNumbers.push_back(1);
  13.        vecNumbers.push_back(2);
  14.        vecNumbers.push_back(2);
  15.        vecNumbers.push_back(3);
  16.        vecNumbers.push_back(4);
  17.        vecNumbers.push_back(5);
  18.        vecNumbers.push_back(6);
  19.        vecNumbers.push_back(7);
  20.        vecNumbers.push_back(8);
  21.        vecNumbers.push_back(8);
  22.        vecNumbers.push_back(2);
  23.        vecNumbers.push_back(9);
  24.  
  25.   for(int Number: vecNumbers)
  26.   {
  27.       int numberCount = count(vecNumbers.begin(),vecNumbers.end(),Number);
  28.       if ( numberCount > 1) mapNumbers[Number] = numberCount;
  29.   }
  30.  
  31.   for(auto valuePair:mapNumbers)
  32.       cout << "The number " << valuePair.first << " repeated " << valuePair.second << " times" << endl;      
  33.  
  34.    return 0;
  35. }
  36.  
  37.  

Simple, sin lambdas, ni hash, ni nada de esa indole por que son features que queman mucho la legibilidad del codigo para alguien que maneja C++03 y ahi nomas ... si alguien quiere un ejemplo mas eficiente y que toque mas cosas de C++11 para ver como es, pida nomas :D

Saludos.
« Última modificación: 14 Julio 2012, 19:15 pm por vertexSymphony » En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Vectores c++
« Respuesta #5 en: 14 Julio 2012, 19:12 pm »

Gracias lo voi a probar.
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Vectores c++
« Respuesta #6 en: 14 Julio 2012, 19:29 pm »

Citar
si alguien quiere un ejemplo mas eficiente y que toque mas cosas de C++11 para ver como es, pida nomas

¿Se sabe cuándo estará disponible C++ 11 de forma gratuita? Según Wikipedia está sujeta a pago todavía...

Saludos y gracias!
En línea

Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: Vectores c++
« Respuesta #7 en: 14 Julio 2012, 19:51 pm »

¿Se sabe cuándo estará disponible C++ 11 de forma gratuita? Según Wikipedia está sujeta a pago todavía...

Saludos y gracias!

C++11 YA es un estándar ISO (se aprobó hace algunos meses, si no es que un año) que define al C++ actual... en ningún momento fue pago, lo que se pagaba era el acceso al borrador con las 1300 hojas que describen al estándar (y supongo que las ~1300 del estándar final también, obvio), que es lo que usan los que hacen compiladores.
Ya se anda implementando en compiladores libres como GCC y Clang .... la gente del Visual Studio si mal no recuerdo está algo atrás.

Hace no mucho lo mejor para probar C++11 era Clang, pero GCC está apostando fuerte a este estándar, y está bastante peleado ... e incluso me pasa de que en Clang me faltan algunas cosas que en GCC están (bueno, por lo menos en debian, que para que todo compile  bien, LLVM es más vieja), me pasó con los inicializadores (por ejemplo, iniciar un std::vector constante en namespace global con una lista de valores) y expresiones lambda (junto con todo lo relacionado, como std::function)

Saludos.
« Última modificación: 14 Julio 2012, 19:53 pm por vertexSymphony » En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Vectores c++
« Respuesta #8 en: 14 Julio 2012, 20:55 pm »

Ah, muchas gracias por la respuesta!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
de pixeles a vectores
Diseño Gráfico
kaliyas 5 2,526 Último mensaje 21 Noviembre 2005, 14:43 pm
por noob_Setup
Imagenes en vectores(EPS)
Diseño Gráfico
Mr.Zeros0 1 1,922 Último mensaje 7 Septiembre 2006, 23:46 pm
por Mr.Zeros0
vectores
Programación C/C++
tartagal 1 2,907 Último mensaje 7 Diciembre 2010, 17:16 pm
por Littlehorse
Vector de vectores C++
Programación C/C++
anonimo12121 6 10,885 Último mensaje 23 Febrero 2013, 22:34 pm
por anonimo12121
C++ Mas iteradores, con vectores de vectores ¡ juerga !
Programación C/C++
Orubatosu 1 2,378 Último mensaje 4 Diciembre 2014, 17:18 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines