쌍 컨테이너에 지우기-제거 관용어 사용
쌍의 벡터<: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 중국어 웹사이트의 기타 관련 기사를 참조하세요!