我有一個方法在類LinkRepository
,我檢查矢量數組中的重複項Datalinks
,這是類的成員。我遍歷數組中的所有元素以檢查數組中已存在的新條目Datalink* datalink
。如果是這樣,那麼不要添加,只需退出循環。C++打破向量循環
void LinkRepository::SaveLink(Datalink* datalink) {
bool Exist = false;
for(vector<Datalink*>::iterator dl = Datalinks.begin(); dl != Datalinks.end(); ++dl)
{
if((strstr((*dl)->ParentID, datalink->ParentID) != NULL) && (strstr((*dl)->ChildID,datalink->ChildID) != NULL))
{
Exist = true;
dl = Datalinks.end();
}
}
if(!Exist)
{
Datalinks.push_back(datalink);
}
};
我的程序似乎崩潰的聲明dl = Datalinks.end();
我不知道它爲什麼崩潰的下一個循環?
如果你不想重複,你確定'std :: vector'是正確的選擇嗎?還有其他的數據結構可以更有效地防止重複,比如'std :: set'和'std :: unordered_set'。 – fredoverflow 2012-08-06 12:05:35
@FredOverflow你可能有我可以看看哪些是最好的使用來源?我選擇'std :: vector'是因爲我想要一個動態數組,因爲我必須查看'Datalink'對象中'ParentID'和'ChildID'的成員。不用它'std :: set1'或'std :: unordered_set'可以爲我做這個嗎? – ZioN 2012-08-06 12:29:58