最近写ACM用到一些STL的函数,在这里总结一下:
(1) max_element(min_element)
求数组最大最小值,注意max_element(start,end)的范围是[start,end),不要混淆。测试代码:
#include <stdio.h>
#include <algorithm>
using namespace std;
int main(){
int array[11];
for(int i=1;i<11;i++)
array[i]=i;
printf("Max of array is: %d\n",*max_element(array+1,array+11));
}
(2) fill和memset
1.memset是对每个字节赋值,而int有4字节(32位)
比如这样,memset(a,1,sizeof(a));
则a中的每个元素都被赋值成为2进制数为,00000001000000010000000100000001,的数
转换成10进制就是16843009
所以,一般用memset对数组赋0或-1,赋其他的值就要用循环来实现.
函数名: memset
//要包含头文件<string.h>
功 能: 设置s中的所有字节为ch, s数组的大小由n给定
用 法: void *memset(void *s, char ch, unsigned n);
2.fill的原理是把那一块单元赋成指定的值,与memset不同,比如:
fill(a,a+100,2);
数组a中的每个元素的值都是2。