1、复制数组内容
借用内存复制函数memcpy,整体赋值
void *memcpy(void *dst, void *src, zize_t size);
这个函数的功能是将src上,大小为size字节的数据赋值到dst上。
调用该寒素需要引用头文件 cstring
int arr1[5]={1,2,3,4,5};
int arr2[10]={0};
memcpy(arr2,arr1,sizeof(arr1));
2、 setprecision、fixed
setprecision:
头文件 iomanip
double s=20.7843000,
cout<<setprecision(1)<<s<<endl;会输出2e+001,因为要输出一个数字,所以只有2.
cout<<setprecision(2)<<s<<endl;会输出21。
cout<<setprecision(3)<<s<<endl;会输出20.8。
cout<<setprecision(6)<<s<<endl;会输出20.7843。
cout<<setprecision(7)<<s<<endl;会输出20.7843。
可见,小数部分末尾为0时,是输不出来的!
如果后面接着语句:
cout<<1<<endl;
cout<<1.00800<<endl;
第一条输出:1 不是浮点型。
第二条输出:1.008 承接setprecision(8)的这条规则语句。
setprecision与fixed:
比如:double s=20.7843909
如果直接:
cout<<fixed<<s<<endl;输出20.784391
配合加入setprecision:
cout<<fixed<<setprecision(1)<<s<<endl;就会输出2.8 。
cout<<fixed<<setprecision(2)<<s<<endl;会输出21.78。多个点!
cout<<fixed<<setprecision(3)<<s<<endl;会输出20.784。
cout<<fixed<<setprecision(6)<<s<<endl;会输出20.784391。
cout<<fixed<<setprecision(7)<<s<<endl;会输出20.7843909。
cout<<fixed<<setprecision(8)<<s<<endl;会输出20.78439090。
cout<<1<<endl;
cout<<1.008<<endl;
第一条输出:1
第二条为:1.00800000
承接了setprecision(8)这条规则语句,是浮点型的都会保留8个小数。是整型的还是整型!
有语句:
cout<<fixed<<setprecision(2)<<s<<endl;
A:cout<<setprecision(7)<<s<<endl;
B:cout<<setprecision(8)<<s<<endl;
就算后面的语句没有写<<fixed,同样会按有<<fixed处理。
AB语句均会按保留7个,8个小数处理,不会再按有7或8个浮点数处理。
3、定义一个宏函数,求x 的平方:
#define SQR(x) x*x
4、算法时间复杂度
- O(log2n )
while (i<=n)
i=i*2;
设频度是f(n), 则:2^f(n)<=n;f(n)<=log2n
取最大值f(n)= log2n,
T(n)=O(log2n )