memset和fill_n区别

1、 函数名: memset

  所属头文件:<string.h>

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

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

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

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

 char a[];
memset(a,'',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

上一篇:lr场景异常Continuing after Error -26479: Conversion of form submission data to the target charset failed: U_TRUNCATED_CHAR_FOUND解决方法


下一篇:Java并发编程:阻塞队列(转载)