ペア コンテナでの消去-削除イディオムの使用
ペアのベクトルがあると仮定します
ただし、質問で示されているように、最初の値が 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 中国語 Web サイトの他の関連記事を参照してください。