清空C++数组
时间: 2023-07-11 11:15:34 浏览: 166
要清空一个 C++ 数组,可以使用标准库函数 `std::fill()` 或 `std::memset()`。
使用 `std::fill()`:
```cpp
int arr[10];
std::fill(std::begin(arr), std::end(arr), 0);
```
这将把数组 `arr` 中的所有元素都设置为 0。
使用 `std::memset()`:
```cpp
int arr[10];
std::memset(arr, 0, sizeof(arr));
```
这也会把数组 `arr` 中的所有元素都设置为 0。注意,`std::memset()` 只适用于 POD(Plain Old Data)类型的数组,对于其他类型的数组,应该使用 `std::fill()` 或类似的函数。
相关问题
c++ 清空map数组
在C++中,可以使用map的成员函数`clear()`来清空map数组。该函数会删除map中所有的元素,将map的大小重置为0。
以下是一个简单的例子:
```c++
#include <iostream>
#include <map>
using namespace std;
int main() {
map<string, int> m {{"one", 1}, {"two", 2}, {"three", 3}};
// 清空map
m.clear();
// 输出map的大小
cout << "Size of map after clearing: " << m.size() << endl;
return 0;
}
```
输出结果为:
```
Size of map after clearing: 0
```
可以看到,map被清空后大小为0。
清空动态数组的时间复杂度
C++中清空动态数组的时间复杂度取决于具体的实现方式。如果使用delete[]操作符来释放动态数组的内存,那么清空动态数组的时间复杂度为O(1)。这是因为delete[]操作符会直接释放整个动态数组所占用的内存,不需要遍历数组元素。
然而,如果使用循环逐个删除数组元素的方式来清空动态数组,时间复杂度将为O(n),其中n是数组的大小。这是因为每次删除一个元素都需要执行一次删除操作,而删除操作的时间复杂度为O(1),所以总的时间复杂度为O(n)。
需要注意的是,无论是使用delete[]操作符还是循环逐个删除数组元素的方式,都只是释放了动态数组所占用的内存,并没有改变数组的大小。如果需要重新分配一个新的动态数组,还需要额外的操作来实现。