最近写代码时遇到对大量整数判重的问题,想到了标准库当中提供的std::bitset,写了一个简单的样例以后,用gcc编译了很久也没编译成功,通过系统命令看到gcc占用了大量的内存,我想这一定是gcc出了bug。
一个简单的示例如下
// g++ -std=c++17 main.cpp
#include <bitset>
constexpr unsigned N = 1024*1024*1024;
std::bitset<N> b;
int main() {}
通过在网上搜索相关的问题,发现这确实是gcc的一个bug,并且在gcc 7.4才修复。假如无法升级gcc的版本,参考文献中也给出了一个解决方法,在定义变量时初始化即可。
#include <bitset>
constexpr unsigned N = 1024*1024*1024;
std::bitset<N> b(0);
int main() {}
0
学习了,谢谢博主