2012-11-03 51 views

回答

1

效率?因爲這是一個常見的用例?如果你想要一個動態位集,考慮vector<bool>。它甚至定義了一些操作。但請先閱讀this

+0

能否詳細說明爲什麼這是有效的? – nikel

+2

因爲,例如,如果你編寫「bitset <32>」,許多實現將足夠聰明,知道只需要一個'int'來保存所有的位。編譯器希望能夠聰明地將代碼編譯成簡單的機器代碼指令。你永遠不會通過動態位集來獲得這種優化級別,因爲實現代碼和編譯器都不能假定位集的實際大小。 – john

2

這樣做是爲了確保位集的特性儘可能接近未加密整數(否則廣泛用於表示位集)的特性。其中之一,負責大小是一個模板參數是要求沒有隱式動態內存分配。

對於動態尺寸比其他特徵更重要的情況,可以使用boost dynamic_bitset

相關問題