将擦除-删除习惯用法与成对容器一起使用
假设我们有一个由对组成的向量<: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中文网其他相关文章!