부동 소수점 숫자를 임의의 bin으로 분류하는 클래스를 찾고 있습니다. 쓰레기통. 원하는 구문은 무언가 같은 : 나는 높이고 STL로 제한 해요 이동성 요구 사항으로 인해 불행하게도double을 임의의 bin으로 분류합니다.
std::vector<double> bin_vector;
// ..... fill the vector with 1, 1.4, 5, etc not evenly spaced values
Binner bins(bin_vector);
for (std::vector<double>::const_iterator d_itr = some_vector.begin();
d_itr != some_vector.end(); d_itr++) {
int bin = bins.categorize(*d_itr);
// bin would be 0 for x < 1, 1 for 1 < x < 1.4, etc
// do something with bin
}
. 지도를 사용하여 자신의 O (log n) 솔루션을 굴려 사용자 정의 범위 객체에 <
을 오버로드했지만 그 해결책은 버그가 발생하기 쉬운 것처럼 보였습니다.
여기에 몇 가지 간단한 stl 또는 boost 객체 솔루션이 있습니까?
'a_vector'를 정렬 할 수 있습니까? 또한 어떤 작업이 더 중요합니까? Binner 또는 조회의 구성? –
@ BjörnPollex 예, 당신은 벡터를 정렬 할 수 있습니다 – Shep
거기에 대한 부스트 메일 링리스트에 스레드가 있습니다 : http://boost.2283326.n4.nabble.com/Histogram-td2591157.html 제안 된 솔루션은 표준을 사용하는 것이 었습니다 : : bin 내용을 수집하기 위해 축적하십시오. – TemplateRex