Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2011, 13:21
Lamarkus
 
Fecha de Ingreso: mayo-2011
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 0
Duda de vectores c++

Hola buenas noches

soy nuevo en el foro y quisiera porfavor que me resolvieran una duda, tngo que hacer un programa en el cual tienes una secuencia de numeros guardados en un vector [1,2,1,2,3,5,6,8,8,1,2] entonces el usuario introduce un numero de repeticiones de una secuencia por ejemplo si pone 2, a la salida tiene que salir un [8,8] en el caso que pusiera 3 tendria que poner [1,2,1,2,1,2] aqui os dejo el codigo que he hecho:

#include <iostream>
#include <vector>
#include <ostream>
using namespace std;

vector<int> repet(const vector<int>& v1, int& n){
int cont=0;
vector<int> resultat;
vector<int>::const_iterator i,j;

for(i=v1.begin(); i!=v1.end(); i++){
for(j=v1.begin(); j!=v1.end(); j++){
if(*i==*j){
cont++;
}
}
if(n==cont){
resultat.push_back(*i);

}
cont = 0;
}
return resultat;
};

int main(){
//genera el vector
vector<int> g(6);
int m;
g[0]=1;
g[1]=2;
g[2]=2;
g[3]=1;
g[4]=2;
g[5]=5;

cout<<"introduce el numero de repeticiones que se repite un elemento"<<endl;
cin>>m;
vector<int> w = repet(g,m);
for (int i = 0; i < w.size(); i++) {
cout << "el elemento"<<" "<< w[i] << " "<<"se repite"<<" "<<m<<" "<< "vez"<<endl;
}


system("pause");
}


El problema esta que con este programa solo me sale por pantalla un elemento es decir si en el ejemplo que e puesto arriba con la secuencia de 1,2 poniendo este codigo me sale [1,1,1] y no se como hacerlo para que me lo lea como una sequencia que se repite llevo dos dias probando cosas que si un tercer for para que me coja una sequencia y me la compare con el vector grande etcc les estaria muy agradecido si me podrian dar alguna pista o algo muchisimas gracias y sorry las molestias un saludo.