C/C++ 学习常用--进行时

来源:互联网 发布:海外网络推广靠谱的吗 编辑:程序博客网 时间:2024/05/29 10:46

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;会输出21cout<<setprecision(3)<<s<<endl;会输出20.8cout<<setprecision(6)<<s<<endl;会输出20.7843cout<<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个小数处理,不会再按有78个浮点数处理。

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 )