c++编程经验一

1.判断浮点数相等,不要用==,因为计算机表示浮点数时存在精度误差问题,最好判断二者之差的绝对值,即fabs(a-b)是否小于某个阈值,例如:1e-9.
2.判断一个整数是否为奇数,不要用x%2==1,请用x%2!=0,因为-3%2=-1,而不是1.
3.注意类型提升问题,比如数组的下标类型为unsigned int 等等
4.vector和string优先于动态分配数组,尤其在多位数组上,可以使用reserve来避免内存重新分配问题。
    vector多维数组表示为vector(注意这里一定要有空格,否则报错) >  v(row_num,vector(col_num,0));
5.vector还可以表示多维数组但是每一维度可以不是等长的,如下:
vector >v;
vector v1(1, 1);
vector v2(2, 2);
vector v3(3, 3);
v.push_back(v1);
v.push_back(v2);
v.push_back(v3);
for (int i = 0; i < 3;i++)
{
for (vector::iterator it = v[i].begin(); it !=v[i].end();it++)
{
cout << *it << " ";
}
cout << endl;
}
6.存在各种各样的编码问题,尤其是中文问题
7.型别定义typedef 与内置类型的区别
8.注意中文的处理问题,locale解决方案 wstring   wfstreamwifstream   wosfream
9.一个符号,一个空格,一个下标,都可能导致程序相差十万八千里,一个经过测试以及验证。比较隐晦的错误要学会调试,找到关键的地方。(编程需要细心再细心,耐心再耐心)
10.注意一个文件的内容是不会改变,即在电脑的比特流是不会改变,只是采用不同的编码方案,就会出现不同文字显示,如果前后编码格式不一致,最容易出现乱码。尽管出现乱码,但是文件的内容及二进制比特流没有改变,所以c++中无论采用string还是wstring存取,都不会影响文件内容,但是注意保持多个文本文件的格式一致。默认情况下,中文window系统s采用gbk2312格式的文本,linux采用utf-8格式(是unicode的一种编码方案,其中兼容Ascii码,为1个字节,汉语文字为3个字节,也可能4个字节。utf-8是最为流行的一种)。

你可能感兴趣的:(c++编程经验一)