2017-03-02 4 views
-4

から要素を消去:は、だから私はベクトルを学び始め、私は構造体ベクターから要素を消去したい、私は構造体としてこれを持つベクトル構造体

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; 

および削除するには、この:

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

しかし、それを実行しようとしている間、消去ラインでこのエラーが発生するので、うまくいかないようです:

どのように私は削除することができますか?ベクトルからの?

+2

[OT]偶然、Cから来ていますか?コード内にC++で行う必要のないいくつかのC'ismsがあります。 – NathanOliver

+1

そしてCでも 'ptr-> thing'と言うことができます –

+2

begin()はメソッドですか? – mpiatek

答えて

1

ptrが何であるかを知らず、これは推測のビットですが、あなたはおそらくしたいの代わり:

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

この:

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

が(開始)関数です - あなたコードはそれを関数ポインタとして扱います。

+0

ええ、忘れました、ptrはメインから来て、それは&ドライバーです。あなたの答えは正しいです。私はあなたにチェックを与えます。私はこの中で長い間、そしてすべてをシンプルなものにしようとしています。ありがとう –

関連する問題