값이 특정 간격 내에있는 벡터 (또는 다른 stl 컨테이너)에서 항목을 제거하는 편리한 방법이 있습니까?C++ 값이 간격 내에있는 벡터에서 항목을 제거합니다.
그래서 예를 들면 : 나는 부동 소수점과 벡터
1.1 1.3 2.2 3.2 4.1 5.2 5.1 1.1 8.0 2.1
다음과 같은 결과로 이어질해야 0.2의 델타를, 값 가지고, 따라서 모두가 "복제"항목에서 제거
1.1 2.2 3.2 4.1 5.1 8.0
델타 값을 범위 내에서 유지하십시오. 값이 "클러스터 됨"이라고 가정 할 수 있습니다. 클러스터의 차이는 3 * 델타 이상입니다. 클러스터의 하나의 값 (평균) 만 유지해야하며 클러스터의 다른 모든 값은 제거해야합니다.
중첩 루프를 반복 할 수는 있지만 iterator가 변경되기 때문에 이것은 매우 복잡해 보입니다. 그래서 나는 더 편리한 방법을 생각했습니다. 예를 들어 remove_if를 찾았지만이 함수는 "비교"할 수 없습니다.
제안 해 주셔서 감사합니다.
맞 내 예에서 그 중간 값이어야하지만, 어쨌든 내삽을 위해 평균을 계산합니다. –