コンテナーstd::map
は、常に値に基づいてキーを並べ替えます。たとえば、宣言時に設定されたビット数でソートすることは可能ですか?
セットビットをカウントする関数があります:
for(size_t i = 0; i < CHAR_BIT * sizeof value; ++i, value >>= 1) {
if ((value & 1) == byteState) ++num_bits;
}
しかし、マップを宣言するときにそれを適用する方法がわかりません:
std::map<int, int> myMap = {
{1,2},
{3,4},
//...
}
私はそれを宣言の3番目のパラメータとして入れようとしました<int,int,decltype(countSetBits)>
が、うまくいきませんでした。