生成从 0 到 255 的数字的二进制表示。这会导致分段错误。请赐教。
vector<bitset<7>> vb;
for (i = 0; i < 256; i++)
{
bitset<7> b(i);
vb[i] = b;
}
//print
for(i=0;i<256;i++){
cout<<vb[i]<<"\n";
答案 0 :(得分:2)
当你声明你的向量时它是空的
vector<bitset<7>> vb;
你可以用给定的大小初始化它
vector<bitset<7>> vb(256);
否则简单地分配给空向量将写出越界,因为它没有(重新)为您尝试访问的元素分配内存
vb[i] = b;
答案 1 :(得分:1)
您的向量大小为 0。要么使用
vb.push_back(b);
或初始化一个大小,如:
vector<bitset<7>> vb(256);