將擦除-刪除習慣用法與成對容器一起使用
假設我們有一個由對組成的向量<: pair direction> >,其中第一個元素表示值,第二個元素表示枚舉方向。要根據第一個元素刪除特定對,擦除刪除習慣用法是合適的方法。
但是,如問題所示,刪除第一個值為 4 的對會導致意外行為。為了修正這個問題,我們需要為 std::erase 函數提供正確的範圍。
改進後的代碼如下所示:
stopPoints.erase(std::remove_if(stopPoints.begin(), stopPoints.end(), [](const stopPointPair stopPoint) -> bool { return stopPoint.first == 4; }), stopPoints.end());
這就是為什麼它可以正確工作:
透過在 std::erase 呼叫中指定正確的範圍,我們確保有效刪除具有指定第一個值的所有對。
以上是如何正確使用擦除刪除慣用法來刪除基於特定第一個元素的向量中的對?的詳細內容。更多資訊請關注PHP中文網其他相關文章!