簡體   English   中英

'矢量迭代器不兼容'

[英]'vector iterators incompatible'

std::vector<Enemy*>::iterator it;
for(it;it!=tracked.end();it++){
    (*it)->update(timeSinceLastFrame);
}

tracked是向量:

std::vector<Enemy*>

為什么我收到此錯誤? (如果我沒有提供足夠的細節,請說明)

你從來沒有初始化迭代器。

for(std::vector<Enemy*>::iterator it = tracked.begin();it!=tracked.end();it++){
    (*it)->update(timeSinceLastFrame);
}

許多實現(例如VC ++,您似乎正在使用)在調試中執行檢查,以確保在比較兩個迭代器時,它們屬於同一個對象。 默認構造的迭代器不屬於任何特定實例,因此it != tracked.end()檢查將失敗並顯示該錯誤。

你還沒有初始化it 嘗試這個:

std::vector<Enemy*>::iterator it;
for(it=tracked.begin();it!=tracked.end();it++){
    (*it)->update(timeSinceLastFrame);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM