zoukankan      html  css  js  c++  java
  • 《C++ Primer》随记

    1. Vector类型是快速增加的,定义一个空的再添加成员,比定义指定长度的集合操作更快。因此即此能预判成员数量也没必要定义长度。
    2. 在for循环时直接判断Vector的size,因为size是内联函数,效率很高,没必要增加一个变量保存size再判断。
    3. 在C++中循环Vector成员时使用!=size,而不推荐<size
    4. 标准库中的string和直接字符串(如:"123")是两个不同的数据类型。
    5. 现代C++中推荐使用vector代替数组,用string代替char数组,用迭代器实现同样功能的指向数组的指针。当只有在确定性能需要时才使用数组这种原始数据类型。
    6. int a=2; 则if(a==true)是否定的,if (a)是肯定的。bool b = 2; 则if(b==true)是肯定的
    7. int a=2+true;则a的值为3,在运算中true转换为1,false转换为0
    8. 在for这类循环时,循环变量要用++i,而不是i++,因为i++需要先保存旧值再计算,比++i需更多的操作步骤,作者说如果i是int类型时编译器优化会节省这一步,但其他类型也许会付出相当大的代价。如果可以尽量用前置运算符。
    9. 在函数参数传递时string和vector都会另复制一份传递,相当于值传递,如果不想复制则需要引用传递,如 vector &v。在在般情况下Vector作为参数传入时推荐使用迭代器传入(相当于引用传递)。
    10.函数不能返回内部变量的引用,因为函数返回时这些局部变量会回收(说明:好在编译器会检查这个)
    11.和普通函数不同,内联函数(inline)应该在头文件中定义。
    12.顺序容器:vector和degue是内存顺序存储,可随机存储,但中间插入和删除慢(因为要移动元素),vector在尾端操作快,而degue两端操作都快。list则是链表存储,不能随机访问。适配器stack和queue使用默认窗口即可。
    13.关联容器:map和multimap是key-value结构,set和multiset只能存储一个key值。key的要求是能进行大小比较操作,在容器中是按照key从小到大排序的

  • 相关阅读:
    博客园背景页面动态特效
    windows7 VirtualBox 安装docker异常:looks like something went wrong in step ‘looking for vboxmanage.exe’
    VUE 封装axios 接口
    实时显示系统当前时间时间
    Git 命令执行
    从模型训练中认知拟合现象
    ModernRNN
    Fundamentals of Recurrent Neural Network
    Language Model & Data Sampling
    Text Preprocessing
  • 原文地址:https://www.cnblogs.com/81/p/2972540.html
Copyright © 2011-2022 走看看