2011-10-12 24 views
0

我想實現64位,128位和256位的位圖。我正在考慮爲這三個人使用專門的課程。我需要設置位並查找它們。該位不會是動態的,將使用64,128和256位的靜態實現。位集或本地數據類型與位圖的位運算?

使用C++ bitset過去使用像long long這樣的本機類型並使用按位運算來操縱比特有什麼優缺點?

在初始化或任何其他因素中使用bitset是否有任何開銷?

謝謝

+0

'std :: bitset'的體面實現將專門用於少量位,以便在可能的情況下使用適當大小的整數。那麼在bitset和本地類型之間不應該有任何區別。不知道你的實施是否體面。 –

回答

2

那麼,肯定會有一些標準的位集開銷。你的實現將會更快(但你需要投入一些精力來編碼並使其高效且無缺陷)。

然而,我會使用標準的位集,而不是對抗這種開銷,直到這是一個已證明的瓶頸。你知道關於過早優化的經常引用的話,對吧?

+0

我是唯一一個看過那篇論文的人嗎? 90%的使用GOTO是合理的! – MSN

+0

@MSN:不僅僅是你 - 我發現在某些情況下使用GOTO是合理的。 – Vlad