使用 true 初始化布尔数组时出现问题
trouble Initializing Boolean array with true
我试图了解如何初始化布尔数组,我尝试使用 memset 并且它有效,但是当我尝试直接初始化它时,我失败了。
bool prime[n+1] ;
memset(prime,true,sizeof(prime));
——这行得通。
但以下没有。
bool prime[n+1] = {1};
//memset(prime,true,sizeof(prime));
我也尝试了以下方法。
bool prime[n+1] = {1};
它确实初始化了你的数组。这就是大括号括起来的初始化的工作原理。第一个数组元素被初始化为1
,这转换为true
,所有其他元素被初始化为0
,这转化为false
。这:
bool v[10] = { 1 };
与您拥有的相同:
bool v[10] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
您可以使用 std::fill 函数和朋友:
std::fill(std::begin(v), std::end(v), true);
std::fill_n(v, 10, true);
像这样初始化一个数组:
bool foo[10] = {1}; // initialize only the first element to 1, the rest get 0.
您需要使用 memset 方法,否则在初始值设定项列表中提供 n 个值
bool foo[10] = {1,1,1,1,1,1,1,1,1,1};
或者使用 std::fill、循环或任何其他方法来设置所有值。
相关文章:
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 输入std::数组时出现问题
- 类对象数组的问题会导致崩溃
- 传递二维数组时出现问题
- 从 C++ 中的函数返回数组地址问题
- 使用数组时出现问题
- 打印问题.我在数组中打印值时遇到一些问题
- C++:__aligned(__alignof__) 导致字符数组数据出现问题?
- 将字节数组转换为带有字节序问题的指针
- C++ 填充数组时遇到问题
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 当我尝试通过 arduino 上的引用传递布尔数组时出现问题
- 我正在尝试解决一个需要数组总和值但代码不起作用的问题,我想做这样的事情
- 编写 cin.get() 以接收字符数组时出现问题
- 在 C++ Consol 中的数组中执行用户命令时出现问题
- 存储另一个函数返回的布尔数组时遇到问题
- 当我在 CLion 中读取数组中的 txt 文件时C++编码问题
- 运行时C++数组初始化问题
- 我在解决此错误时遇到问题.我正在努力在主函数中传递数组