我想存儲長度大於64位的整數。在應用程序中添加每個條目時,每個整數的位數可能高達數百萬。 然後,對於64個這樣的整數(等長),必須執行按位AND操作。如何在C++中保存大於64位的整數?
那麼什麼是最好的C++數據結構的操作時間效率? 早些時候我已經考慮過它的矢量,因爲它可以動態增加長度。其他選項是使用std:bitset。
但我不確定如何使用這兩種方法執行按位AND操作,以便以最省時的方式完成。
感謝
我想存儲長度大於64位的整數。在應用程序中添加每個條目時,每個整數的位數可能高達數百萬。 然後,對於64個這樣的整數(等長),必須執行按位AND操作。如何在C++中保存大於64位的整數?
那麼什麼是最好的C++數據結構的操作時間效率? 早些時候我已經考慮過它的矢量,因爲它可以動態增加長度。其他選項是使用std:bitset。
但我不確定如何使用這兩種方法執行按位AND操作,以便以最省時的方式完成。
感謝
的GNU Multiprecision Library是一個很好的任意精度的整數庫。它很可能是針對您的編譯器/ CPU進行了大量優化,所以我會先把它作爲第一次啓動,如果速度不夠快,請推出自己的特定實現。
正是服用大數據時重新分配內存矢量相當昂貴的,所以我會定義
struct int_node{
bitset<256> holder;
int_node *next_node;
}
我覺得這種做法會節省時間內存管理和節省按位老年退休金計劃的一些週期。
有一些很好的任意精度整數庫。 – chris 2012-04-29 03:11:01