2017-03-02 132 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; 
    } 
} 

但它似乎不工作,因爲我在試圖運行它時在擦除線中出現此錯誤:

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

如何刪除ele矢量?

+2

[OT]你來自C嗎?你的代碼中有幾個C'isms,你不需要在C++中完成。 – NathanOliver

+1

即使在C你可以說'ptr->東西' –

+2

begin()是一種方法嗎? – mpiatek

回答

1

不知道什麼ptr的是,這是一個有點猜測,但你可能要代替:

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

這樣的:

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

開始()是一個功能 - 你代碼試圖把它當作一個函數指針。

+0

是的,我忘了,ptr來自主體,它是&驅動程序。你的回答是正確的我會給你檢查,我一直在這裏爲了一個簡單的()。謝謝 –