您的位置:首页 > 其它

低级错误(持续更新中)

2016-02-22 16:23 351 查看
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。 不多说。。啪啪打脸
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: