비교적 작은 크기 (5 ~ 20 개 요소)의 정렬 된 std::vector
이 있습니다. 데이터가 연속적이므로 std::vector
을 사용 했으므로 캐시 때문에 속도가 있습니다. 특정 시점에서이 vector
에서 요소를 제거해야합니다.std :: vector vs std :: insert
나는 다음과 같은 두 가지 옵션 중에서이 값을 제거하는 가장 빠른 방법입니다.
- 0으로 그 요소를 설정하고 재정렬
sort
호출이 복잡성을 갖지만 요소는 동일한 캐시 라인에있다. - 1 개 (모든 지우개를 조사해야 함) 이후에 모든 요소를 복사 (또는 누가 아는 지 memcpy)하겠습니까?
erase
으로 전화하십시오.
어느 것이 더 빠릅니까?
나는 동일한 접근법이 벡터의 최대 용량에 부딪치지 않고 새로운 요소를 삽입하는 것에 대해 생각할 수 있다고 생각한다.
감사
AFG
측정하고 알아내는 게 어떨까요? –
또한, 나는 (복사를 포함하는) 분류가 단지 복사하는 것보다 얼마나 빠를 수 있는지 보지 못한다. –
... 그리고 컨테이너 요소 유형도 중요합니다. – dirkgently