我想存储长度超过64位的整数。在应用程序中添加每个条目时,每个整数的位数可以达到数百万。 然后对于64个这样的整数(长度相等),必须执行逐位AND操作。
那么什么是最佳的C ++数据结构,以便节省时间? 早些时候我曾考虑过它的向量,因为它可以动态地增加长度。其他选项是使用std:bitset。
但我不确定如何使用这两种方法执行逐位AND,以便以最节省时间的方式完成。
由于
答案 0 :(得分:3)
GNU Multiprecision Library是一个很好的任意精度整数库。它很可能在编译器/ CPU的具体情况下进行了大量优化,因此我将首先将其作为第一次启动,如果速度不够快,请自行完成特定的实现。
答案 1 :(得分:0)
在获取大数据时为向量重新分配内存非常昂贵,因此我将定义
struct int_node{
bitset<256> holder;
int_node *next_node;
}
我认为这种方法可以节省内存管理时间,并在按位操作上节省一些周期。