1

我想存储长度大于 64 位的整数。随着每个条目添加到应用程序中,每个整数的位数可以达到数百万。然后对于 64 个这样的整数(等长),必须执行按位与操作。

那么,什么是最佳的 C++ 数据结构以使操作具有时间效率?早些时候我考虑过它的向量,因为它可以动态增加长度。其他选择是使用 std:bitset。

但我不确定如何使用这两种方法执行按位与运算,以便以最省时的方式完成。

谢谢

4

2 回答 2

3

GNU Multiprecision Library是一个很好的任意精度整数库。它很可能会针对您的编译器/CPU 的具体细节进行大量优化,因此我会首先使用它,如果速度不够快,请推出您自己的特定实现。

于 2012-04-29T03:16:04.797 回答
0

在获取大数据时为向量重新分配内存是相当昂贵的,所以我会定义

struct int_node{
    bitset<256> holder; 
    int_node *next_node;
}

我认为这种方法可以节省内存管理的时间并节省一些按位运算的周期。

于 2012-04-29T06:43:37.583 回答