浮動小数点数を任意のビンに分類するクラスを探しています。ビン。望ましい構文は次のようになります。
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
}
残念ながら、移植性の要件により、boost と stl に制限されています。カスタム範囲オブジェクトのマップとオーバーロードを使用して、独自の O(log n) ソリューションを作成し<
ましたが、そのソリューションはバグが発生しやすく、せいぜい醜いようでした。
これに対する単純な stl または boost オブジェクトのソリューションはありますか?