Hej igen
ja jeg er løbet ind i endnu et problem
Jeg har to vectorer, og jeg skal undersøge om dataen i den ene findes i den anden.
Indtil vidre har jeg bixet noget ligende det her sammen ->
int k=0;
for (int i=0; i < linesDwn+1; i++) {
if (dwn[i] != watch[k]) {
cout << "NO MATCH -> " << dwn[i] << " " << watch[k] << endl;
} else {
cout << "MATCH -> " << dwn[i] << " " << watch[k] << endl;
k++;
}
}
}
Hvor den tager den første rubrik(?) i vectoren som den skal checke fra, og hvis den er lig med den anden, så skal den increase den pointer der styre den vector som bliver checket (k++). Men hvis så de ikke er lig med hinanden skal det kun increase den der styre pointeren for den vector der checker (i++)
Dog er der et lille problem. Hvis det den skal checke om eksistere i den anden vector, ikke findes overhoved bliver den ved med at sige at resten er usandt netop pga den pointer der checker den ancen vector ikke findes ->
int k=0;
for (int i=0; i < linesDwn+1; i++) {
if ((i == linesDwn) && (k != linesWatch)) {
remove(watch.begin(), watch.end(), watch[k]);
}
if (dwn[i] != watch[k]) {
cout << "NO MATCH -> " << dwn[i] << " " << watch[k] << endl;
} else {
cout << "MATCH -> " << dwn[i] << " " << watch[k] << endl;
k++;
}
}
Jeg har så tænkt på at først kunne den gennemgå den ene vectore (den der undersøger den anden) om der var noget i den der ikke eksisterede i den anden, og så slette/replace med "" problemet er bare at jeg kan simpelthen ikke fatte hvordan erase/replace virker?? Lige meget hvad jeg gør er det forkert
Så det jeg søger hjælp til er
1. hvordan dælen fortæller man den at den skal slette felt watch[k] uden at den brokker sig over et eller andet
2. Findes der evt. en hurtigere, smartere og lettere måde end den jeg har rodet mig ud i?
3. Hvis jeg bruger erase vil det så ikke ødelægge pointerne? altså hvis der er test[0] = hm, test[1] = hmm, test[2] = hmmm
og man så sletter test[1]
test[0] = hm, test[1] = hmmm
hvis du forstår
Indlæg senest redigeret d. 03.05.2007 23:12 af Bruger #11701