c++ - 使用位集生成二进制数导致c ++中的分段错误
问题描述
生成从 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";
解决方案
当您声明您的向量时,它是空的
vector<bitset<7>> vb;
你可以用给定的大小初始化它
vector<bitset<7>> vb(256);
否则,简单地分配给空向量将超出范围,因为它没有(重新)为您尝试访问的元素分配内存
vb[i] = b;
推荐阅读
- sql - 如何连接两个表并使用逗号分隔值创建一个附加列
- python - 如何在 AWS lambda 上导入熊猫?
- ubuntu-18.04 - 如何授予所有用户/在线客户端对 Ubuntu 服务器中特定文件夹的权限?
- python - 如何从列表中返回具有文档中出现次数的元素?
- c# - 如何在检查器中隐藏继承的公共变量?
- angular - 如何在 Visual Studio Code 中调试 Angular 多项目工作区
- spring - 如何使用 spring boot kotlin intellij 启用自动构建和自动重启
- fullcalendar - 具有不同持续时间的可拖动事件应与日历中显示的大小相同
- uwp - 从 C++ AMP 而不是 TYPELESS 获取 FLOAT 纹理
- postgresql - 在 PostgreSQL 中使用 int4range 类型进行快速最近邻匹配