반응형 erase1 C++ Erase-remove 관용구란 무엇인가? Erase-remove 관용구(idiom)란 무엇인가?Erase-remove 관용구는 컨테이너(주로 std::vector)에서 특정 조건에 맞는 원소들을 효율적이고 안전하게 제거하기 위해 사용하는 표준적인 방법이다. 단순히 erase만 사용했을 때에 발생하는 성능 저하와 복잡성을 해결해 주는 아주 중요한 기법이다.왜 필요한가?std::vector는 배열과 같이 연속된 메모리 구조를 가지고 있다. 그래서 중간에 있는 원소를 하나 제거하면, 그 뒤에 있는 모든 원소를 앞으로 한 칸씩 당겨야 하는 비효율이 발생한다. 또한, 반복문 안에서 erase를 잘못 사용하면 무효화된 반복자(Iterator Invalidation) 문제로 인해 프로그램이 충돌할 위험 또한 가지고 있다. 이때 이러한 문제를 해결하기 위해서.. 2025. 12. 28. 이전 1 다음