码迷,mamicode.com
首页 > 其他好文 > 详细

(一)编程技巧

时间:2019-07-21 18:53:13      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:数字   绝对值   nbsp   数组   abs   就会   分配   维数   bsp   

 在判断两个浮点数a和b是否相等时,不要用a==b;应该判断两者之差的绝对值fabs(a-b)是否小于某个阈值,例如:1e - 9 ;

判断一个整数是否为奇数时使用x%2!=0;不要用x%2==1;,应为x可能是负数。

用char的值作为下标(例如:统计数字中每个字符出现的次数),要考虑到char可能是负数。有人考虑到了,先强转为了unsigned int 再用作下标,这仍是错误的。正确的做法是,先强转为 unsigned char ,再作为下标

vector 和string 优先于动态分配的数组

  首先:在性能上,由于vector能够保证连续的内存,因此一旦分配了后,它的性能跟原始数组是相当:

  其次:如果用new,意味着你要确保要在后面用delete ,一旦忘记了就会产生bug,且这样都要写一行delete,代码不够短。

  再次,声明多维数组的话,只能一个一个的new,例如:      

       int **array=new int *[row_now];

  for(int i=0;i<row;++i)

  {

    ary[i]=new int [col_num];

  } 

如果用vector的话一行代码就能搞定:

vector<vector<int> >    ary(row_num,vector<int> (col_num,0))

 

(一)编程技巧

标签:数字   绝对值   nbsp   数组   abs   就会   分配   维数   bsp   

原文地址:https://www.cnblogs.com/xcb-1024day/p/11221879.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!