我想存储长度大于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