以除去我有一個小問題,lambda表達式而在std::vector
遍歷的std ::載體不希望與的remove_if
使用remove_if
我有一個下面的代碼段:
std::remove_if(openList.begin(), openList.end(),
[&](BoardNode& i){
std::cout<< i.getCoordinates() << std::endl;
std::cout<< currentNode.getCoordinates() << std::endl;
return i.getCoordinates() == currentNode.getCoordinates(); }
);
這個沒有編譯器錯誤,但是從上面的語句返回true的元素不會從vector中移除;
我在屏幕上打印例如
[5,5]
[5,5]
但openList
保持原樣。
您確定錯誤來自第一個代碼示例嗎? – juanchopanza
「在調試過程中我沒有得到我的座標」是什麼意思?據我所知,第一個例子是正確的,第二個例子是錯誤的,因爲謂詞需要一個迭代器而不是'BoardNode'。 –
此外,「不想返回正確類型」的標題是什麼意思?你的lambda正確返回'bool'。 –