为什么我们不能像使用 1D 和 2D 数组一样使用 std::fill()?
Why can't we use std::fill() the same way for 1D and 2D arrays?
我已经看到,如果我们有一个 1D 数组 int A[10],那么要用任意值填充它,比如 0,我们使用 std::fill(A, A+10, 0)
对于 2D 数组 B[10][10],我们用 0 填充它: std::fill(&B[0][0], &B[0][0] + sizeof(B), 0
但是,我不明白为什么我们不能将 1D 数组 A 填充为: std::fill(&A[0], &A[0] + sizeof(A), 0
有人可以解释一下吗?
sizeof(T)
返回类型为 T
的字节数。 如果T
是数组类型(如果您不考虑T[0]
char
类型),则它不会返回项数。
对于数组中的项目数,它将是 sizeof(T) / sizeof(T[0])
,因此fill
函数将是这样的:
std::fill(&A[0], &A[0] + sizeof(A)/sizeof(A[0]), 0)
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 为什么在C++中对链表这样做?(像堆叠一样处理它们)
- 堆栈和队列是否像C++中的数组一样传递?
- 是否有技术原因阻止 Java 中的 final C++ 像 const 一样严格?
- 访问数据成员(本身是对象)的数据成员,就好像它们是类成员一样
- 您可以使用 setfill() 来设置 fill 2 位数字吗?
- 我们可以将集合的值存储在变量中吗?就像我们可以将数组的值存储在变量中一样
- 我如何在C++像在 Python 中一样实现 f 字符串?
- 自制的上衣:看起来一样,但不完全相同
- 如何使用 redis-plus-plus 存储二进制数据,就像我想存储结构一样?@for_stack?
- 如何像在 C++ 中处理数组一样对 .txt 文件中的字符进行寻址?
- 如何将两个字符串加在一起,就好像它们是变量一样?
- 像 CPP 中的控制台一样的应用程序
- 为什么C++中没有常量引用,就像常量指针一样?
- 为什么将两个对象分配给另一个对象后,两个对象不一样?
- 有没有像给定的一样的 std::optional_function
- Java 是否像C++模板一样具有泛型推论?
- 记忆栅栏和记忆屏障是一样的吗
- 如何在使用 make_unique<T[]>() 制作的模板类型数组上使用 std::fill?
- 为什么我们不能像使用 1D 和 2D 数组一样使用 std::fill()?