1. 传递数组之前用了memset,子函数处理之后默认值成了乱码,应该用fill来着。。。
fill 的头文件是<iostream> 命名空间是std;
用法:
eg:
#include<iostream>
using namespace std;
int main()
{
char s[100];
fill(s,s+100,'a');
for(int i=0;i<100;i++)
cout<<s[i];
cout<<endl;
system("pause");
}
它的原理是把那一块单元赋成指定的值,与memset不同,
memset是按字节填充的例如:
这个例子可以很好的区别memset和fill:
#include<iostream>
using namespace std;
int main()
{
int d[100];
fill(d,d+100,1);
for(int i=0;i<100;i++)
cout<<d[i]<<" ";
cout<<endl;
memset(d,1,100*sizeof(int));
for(int i=0;i<100;i++)
cout<<d[i]<<" ";
cout<<endl;
system("pause");
}
(http://www.cppblog.com/zzg/articles/87414.html)
2. 注意acos的范围是-1 ~ 1,向量计算有可能算出来的值不是严格-1~1会导致错误。
3. fabs 和 abs。 不多说。。啪啪打脸