C++杂记
来源:互联网 发布:数据机房搬迁报价 编辑:程序博客网 时间:2024/04/30 00:19
主要记录一些平时遇到的比较琐碎的知识点。
1.关于vector类
vector类的功能比数组强大,但付出的代价是效率稍低。如果你需要的是长度固定的数组,使用数组是更佳的选择,但代价是不那么方便和安全。
2.关于内联函数
编译过程的最终产品是可执行程序——由一组机器语言指令组成。运行程序是,操作系统将这些指令载入到计算机内存中,因此每条指令都有特定的内存地址。计算机随后将逐步执行这些指令。有时(如果循环获分支语句时),将跳过一些指令,向前或向后跳到特定地址。常规函数调用也使程序跳到另一个地址(函数的地址),并在函数结束时返回。执行到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈(为此保留的内存块),跳到标记函数起点的内存单元,执行函数代码(也许还需将返回值放入到寄存器中),然后跳回到地址被保存的指令处(这与阅读文章时停下来看脚注,并在阅读完脚注后返回到以前阅读的地方类似)。来回跳跃并记录跳跃位置意味着使用函数时,需要一定的开销。
C++内联函数提供了另一种选择。内联函数的编译代码与其他程序代码“内联”起来了。也就是说,编译器将使用相应的函数代码替换函数调用。对于内联代码,程序无需跳到另一个位置处执行代码,再跳回来。因此,内联函数的运行速度比常规函数稍快,但代价是需要占用更多内从。如果程序在10个不同的地方调用同一个内联函数,则改程序将包含该函数代码的10个副本。
3.关于引用变量做参数
通过将引用变量用作参数,函数将使用原始数据,而不是其副本。
引用和指针的差别之一是,必须在声明引用时将其初始化,所以指针会有空指针,引用却不会有空引用。
0 0
- C杂记
- C#-杂记(临时)
- C杂记(1)
- C杂记(1)
- C杂记 (2)
- 51C语言杂记
- c语言杂记
- C语言杂记
- linux C线程杂记
- C语言编程杂记
- C语言杂记
- C语言杂记1
- C语言笔记杂记
- C语言杂记.md
- C语言数据类型杂记
- C语言指针杂记
- C语言杂记1
- C语言 数据结构 杂记
- 圆形imageview自定义
- java内存模型与volatile
- Spring学习 WEB FLOW
- windows下整合UCenter、ECShop、Discus
- Objective-C基础:小知识点汇总
- C++杂记
- android VideoView开发总结
- jquery动态生成的元素绑定事件
- hdu4328 最大子矩阵问题O(n*m)扫描思想
- 面向对象第三课,程序执行过程的内存分析,堆、栈分析
- 图像处理--局部放大处理
- Android应用插件式开发解决方法
- ACM--steps--3.1.1
- uva101木块问题The Blocks Problem