我如何使用fill_n()对以下数组
how do i use fill_n() on the following array?
我有这个数组
unsigned char bit_table_[10][100];
用0填充它的正确方法是什么?I tried
std::fill_n(bit_table_,sizeof(bit_table_),0x00);
初始化:
unsigned char bit_table_[10][100] = {};
如果它是类成员,可以在构造函数中初始化它,如下所示:
MyClass::MyClass()
:bit_table_()
{}
否则:
std::fill_n(*bit_table_,sizeof(bit_table_),0);
bit_table_
的类型是unsigned char [10][100]
,它将衰变(即编译器允许将其隐式转换为)为unsigned char (*)[100]
,即指向一个包含100个unsigned chars
的数组的指针。
std::fill_n(bit_table_, ...)
被实例化为:std::fill_n(unsigned char (*)[100], ...)
,这意味着它需要一个unsigned char [100]
类型的值来初始化bit_table_
。0
不能转换为该类型,因此编译失败。
另一种考虑方法是,处理迭代器的STL函数只处理单一维度。如果你传入一个多维结构,那些STL函数将只处理一个维度。
最终,你不能这样做;没有办法给数组类型赋值。也就是说,既然你不能这样做:
char table[100];
char another_table[100]= { };
table= another_table;
不能在多维数组上使用std::fill_n
您也可以尝试用unsigned char bit_table_[10][100]= { 0 }
填充0。
int main()
{
unsigned char bit_table_[10][100]= { 0 };
return 0;
}
相关文章:
- 如何在动态数组上使用搜索函数
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 在 C++ 中的数组上使用阶乘函数
- 如果我在字符数组上使用 close() 会发生什么?
- "p"数组如何使用 std::normal_distribution 存储以下代码中的值C++?
- 如何在使用 make_unique<T[]>() 制作的模板类型数组上使用 std::fill?
- 如何将 std::find() 与 2d std: 数组一起使用?
- 创建整数的 2D 数组,该数组将使用两个函数用随机数填充矩阵.我做错了什么?
- 如何从文件中读取数字并在数组中使用它们?
- 是否可以在数组上使用const_cast来更改元素?
- 在缓冲区/数组中使用颜色结构
- 将 unique_ptr<std::vector> 与 c 样式数组结合使用
- 在结构数组上使用 c++ std::copy
- 数组中使用 int 中的位的不同元素数
- 如何修复将传输到 java 的 2d 数组代码使用 JNI
- 正在使用C 三元运算符中的字符串常数,一种无效的非效率数组的使用
- 在数组中使用C++中的哈希表复制数组中的元素
- 将 find_if() 与数组一起使用的代码段中出错
- C 将1D动态数组施放到2D数组以使用常规索引(例如ARR [i] [J])
- 如何在数组中使用结构化绑定作为ARG传递给某些函数