zoukankan      html  css  js  c++  java
  • C++编程注意问题 分类: C/C++ 2015-04-17 16:59 46人阅读 评论(0) 收藏

    1、当用两个迭代器初始化string类型时,如:string str(str1.begin(),str1.begin()+5),实际上,以上是一个前闭后开的区间,也就是说,str1,begin()+5所指向的字符并没有被复制。

    2、void * memset ( void * ptr, int value, size_t num );用value初始化ptr所指向的前num区域,一种初始化方法。

    3、判断两个浮点数类型的变量是否相等不要用a==b形式,而应该判断两个数绝对值之差是否小于一个阀值。

    在代码中对浮点数据类型直接使用== 、<= 、>=、 !=等运算符进行比较都是不正确的。正确的方法应该是 将其差或和于小数进行比较 。

    4、数组指针和指针数组傻傻分不清楚:int *p[],首先需要明白[]的优先级高于*,p先和[]结合,说明其是一个数组,再和*结合,说明数组里的变量都是指针;int (*p)[],p先和*结合,所以p是一个指针,再和[]结合,说明指针指向的都是数组。

    5、遇到字符串,优先使用string;遇到会变的数组,优先使用vector;能用stl就不要自己写。

    6、size_t类型使用特别注意,其不可能为负,所以不要犯size_t t;while(t>=0){--t};这样的错误,因为t永远也不可能为负。

    7、判断一个整数是否为奇数,用x%2!=0,不要用x%2==1,因为x也可能为负数。

    8、用完new后一定要用delete,它们和(),{},[]一样,都是成对出现的。

    9、if(t)、while(t)等等,后面省略的都是“!=0/NULL” ;true为1,false为0;a==b这种形式,相等(为真)返回的是1,不相等(为假)返回的是0;

    10、STL标准模板库是C++标准库的一部分,C++标准库还有HP,SGI等实现的STL版本,STL标准模板库中的绝大部分都是在SGI中实现的;不过,在使用时不用管这么多,STL标准库的头文件是没有扩展名的,直接包含相关头文件即可;STL中有很多实用的算法,熟悉其使用可以节省很多时间,而且STL实现的版本性能肯定不会比自己写的差到哪去。

    11、

    private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。
    protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。
    public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。 
    注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。

  • 相关阅读:
    c++Primer再学习(1)
    c++Primer再学习练习Todo
    感悟(一)
    新目标《C++程序设计原理与实践》
    C++Primer再学习(4)
    开篇
    C++Primer再学习(3)
    C++实现的单例模式的解惑
    使用springboot缓存图片
    springboot h2 database
  • 原文地址:https://www.cnblogs.com/zclzqbx/p/4687155.html
Copyright © 2011-2022 走看看