我有以下两个问题。
我知道链接的概念 名单。什么是链表 间隔l
我需要在C / C ++中存储一个非常大(超过100位)的数字并对其执行按位操作。如果不使用任何大数字库,那么处理这种情况的最佳数据结构是什么?
谢谢
答案 0 :(得分:4)
答案 1 :(得分:0)
对于问题的第二部分,请尝试std::bitset
答案 2 :(得分:0)
如果你想编写自己的类来处理大位数(我不知道你为什么会这样),你可以包装一个向量。你必须抓住自己的溢出物。这是一个巨大的痛苦,我只是提出来,因为这是我们参加C ++课程的最后一个项目,哈哈。我不推荐这个= P
答案 3 :(得分:0)
我对此发表评论是另一个问题,其他人问过这个问题。这个似乎指的是我的评论,所以我会解释我的意思。我的建议是:
struct interval_node {
int index;
struct interval_node* next;
}
其中index存储位“翻转”的所有点。如果你有类似11111111111100000000000
的东西,这是一个巨大的内存优势,因为它只需要存储第一位为1(在某个结构之外)的事实,以及该位在第12个索引中翻转(基于0),而不是存储每个单独的位。只要序列没有像
1010101010101010101010101010101010101010101010
因为它在每一点都翻转。