-1
我有以下代碼正在用於從矢量中找到最弱的目標,該矢量是一個包含指向所有活動單元的指針的向量。我正在嘗試創建一個遍歷每個單元並將其傳遞給另一個函數can_attack(單元& u,單元&v)的迭代器,它需要兩個單元並測量它們是否足夠接近彼此進行攻擊。將迭代器傳遞到函數
在編譯時,我收到以下錯誤「錯誤:引用類型'const Unit'無法綁定到類型爲'Unit * const'的左值」。我明白我正在傳遞錯誤類型的變量,但不確定如何將迭代器轉換爲常量單元。感謝您的任何幫助
void World::enemies_within_attack_range(const Unit &u,
vector<Unit*> &targets) const
{
targets.clear();
vector<Unit*>::const_iterator it=units.begin();
for(it;it!=units.end();it++){
if((*it)->team != u.team){
if(can_attack(u,(*it))){
targets.push_back(*it);
}
}
}
}
你可能想'can_attack(u,*(* it))'。 – songyuanyao
這樣一個簡單的解決方案。謝謝。另一個快速問題..我for循環產生的表達式結果是未使用的錯誤..爲什麼會這樣?是否在for循環中使用表達式結果? – spaceinvaders101
什麼是*表達結果*?你展示的代碼中有哪部分內容? – songyuanyao