memset和fill
时间: 2023-10-19 17:30:46 浏览: 103
C++中memset函数用法详解
memset和fill都是用于填充内存块的函数。
memset函数用于将一块内存块按字节进行填充。它的声明如下:
```c
void *memset(void *ptr, int value, size_t num);
```
其中,`ptr`是指向要填充的内存块的指针,`value`是要填充的值,`num`是要填充的字节数。该函数会将内存块的每个字节都设置为给定的值。
例如,以下代码将一个整型数组中的所有元素都设置为0:
```c
int arr[5];
memset(arr, 0, sizeof(arr));
```
fill是C++标准库中的一个算法,它用于将容器中的元素按指定值进行填充。它的声明如下:
```cpp
template<class ForwardIt, class T>
void fill(ForwardIt first, ForwardIt last, const T& value);
```
其中,`first`和`last`分别是容器的起始和结束迭代器,`value`是要填充的值。该函数会将[first, last)范围内的所有元素都设置为给定的值。
例如,以下代码将一个vector容器中的所有元素都设置为1:
```cpp
std::vector<int> vec(5);
std::fill(vec.begin(), vec.end(), 1);
```
需要注意的是,memset函数是C语言中的函数,而fill是C++标准库中的算法函数,在C++中推荐使用fill来进行容器元素的填充。
阅读全文