memset和fill_n区别

1、 函数名: memset

  所属头文件:<string.h>

  用法:void *memset(void *s, char ch, unsigned n);

对于对int之类的数组,只能用memset对其初始化为0或-1初始化,如:

1 int a[]; 
2 memset(a,0,sizeof(a)):
3  //sizof(a)=sizeof(int)*n; 

而对于char型,可以赋任何字符。如:

1 char a[]; 
2 memset(a,'0',sizeof(a));//sizeof(a)=1*n;

2、 函数名: fill_n

  所属头文件:<iostream>

  用法:template< class OutputIt, class Size, class T >
    void fill_n( OutputIt first, Size count, const T& value );

 

区别:与memset的不同不仅在于函数参数的顺序,而且对int型的数组赋值,fill_n可以赋任何值,而memset只能赋0或-1

原文地址:https://www.cnblogs.com/hbiner/p/3403958.html