使用 C++11,我喜欢创建一个布尔数组并立即清除它
bool *mymap = new bool[n];
n 是可变的。
现在,这是否已经清除了数组占用的内存?如果没有,是否有比使用循环遍历所有元素更好的方法来清除数组,将每个元素单独设置为 false?
我考虑过使用 std:memset(),但这需要我知道数组的大小。现在,初学者可能会说:简单,大小是 n*sizeof(bool)。但我不买那个。编译器可能会决定以不同的方式打包它们,甚至将它们打包为位,不是吗?
那么,有没有办法更清楚地告诉数组的大小?我想可能有一个 std:arraysize() 函数简单地返回内存中分配的数组的空间。毕竟,必须以某种方式在运行时维护该信息,否则删除调用不知道要释放多少,对吗?