2017-03-02 7 views
-4

So begann ich Vektor lernen, und ich wollte ein Element, das aus einer Struktur Vektor löschen, ich habe dies als struct:Erase Elemente von Vektor struct

typedef struct Carro{ 
    int id, cc, cv; 
    char marca[50], modelo[50]; 
}car; 

typedef struct Condutor{ 
    vector<car> cars; 
    int id; 
    int totalC=0; 
    char nome[50]; 
}driver; 

und diese zu löschen:

for(int i=0; i< (*ptr).size(); i++){ 
    if((*ptr)[i].id == id){ 
     (*ptr).erase((*ptr).begin +i); 
     verif=true; 
     break; 
    } 
    else{ 
     verif=false; 
    } 
} 

aber es scheint nicht zu arbeiten, wie ich diesen Fehler in der Löschleitung erhalten bei dem Versuch, es zu laufen:

invalid operands of types '<unresolved overloaded function type>' and 'int' to binary 'operator+' 

wie kann ich ein ele löschen ment von Vektor?

+2

[OT] Kommen Sie zufällig aus C? Sie haben ein paar C'isms in Ihrem Code, die Sie in C++ nicht tun müssen. – NathanOliver

+1

Und sogar in C kannst du 'ptr-> thing' sagen –

+2

begin() ist eine Methode? – mpiatek

Antwort

1

Ohne zu wissen, was ptr ist, ist dies ein bisschen ein von einer Vermutung, aber Sie wollen wahrscheinlich statt:

(*ptr).erase((*ptr).begin +i); 

dieses:

ptr->erase(ptr->begin() +i); 

beginnen() ist eine Funktion - Ihre Code versucht, es als Funktionszeiger zu behandeln.

+0

Ja, ich habe vergessen, kommt ptr von Haupt und es ist & Treiber. Deine Antwort ist richtig, ich gebe dir einen Scheck, ich bin schon lange in diesem und allen für eine einfache(). Vielen Dank –

Verwandte Themen