11
嗨即時通訊工作的東西,要求我訪問特定/位的範圍。我決定使用bitset,因爲它很容易訪問特定的位,但我可以提取一整個位的範圍?in bitset,我可以使用「to_ulong」來指定特定的位數範圍嗎?
嗨即時通訊工作的東西,要求我訪問特定/位的範圍。我決定使用bitset,因爲它很容易訪問特定的位,但我可以提取一整個位的範圍?in bitset,我可以使用「to_ulong」來指定特定的位數範圍嗎?
方法A:
return (the_bitset >> start_bit).to_ulong();
方法B(比方法A在我的機器上快了100倍):
unsigned long mask = 1;
unsigned long result = 0;
for (size_t i = start_bit; i < end_bit; ++ i) {
if (the_bitset.test(i))
result |= mask;
mask <<= 1;
}
return result;
'operator []'應該更快,因爲沒有像'test()'那樣的邊界檢查。 – 2017-05-15 21:21:18
您可能要接受給出了答案。 – 2011-11-15 14:58:19