C/C++
文章平均质量分 80
纪辰晓
全栈工程师+创业者
展开
-
C++中的类所占内存空间总结
类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的。 摘抄部分: 成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是一个tabl转载 2015-05-02 17:14:01 · 353 阅读 · 0 评论 -
排序算法之选择排序——C++实现
选择排序算法就是每一趟从待排序的记录中选出关键字最小(最大)的记录,顺序放在已排好序的子文件的最后(最前),直到全部记录排序完毕。本文只实现直接选择排序。 一、特性 最差时间复杂度:O(n^2) 最优时间复杂度:O(n^2) 平均时间复杂度:O(n^2) 稳定性:不稳定 关于直接选择排序的稳定性,在这里讨论一下。排序算法的稳定性是指:假定在待排序的记录序列中,存在多个具有相同的关键原创 2015-05-01 15:02:07 · 1216 阅读 · 0 评论 -
排序算法小结
1、冒泡排序 相邻的数据进行交换。如果有n个数,则需要比较n-1次,每次比较后,较大的数都会排到后面(下面),故以后相邻的数据之间可以少比较一次。当数据之间没有再进行交换了,则停止排序。故可以用do…while…来实现。 时间复杂度:O(N^2)。稳定。 冒泡排序代码: void sort(int* a, int n) { bool changeFlag; do{原创 2015-07-04 21:18:56 · 446 阅读 · 0 评论 -
C++对象模型
基本C++对象模型 如下面的Base类定义: 其对象在内存中的分配如下: 在此模型中,non static数据成员被放置到对象内部,static数据成员(放置到全局数据区),static函数成员(放置到全局数据区),non static函数成员(放置到代码段)均被放到对象之外。对于虚函数的支持则分两步完成: 每一个class产生一堆指向虚函数的指针,放在表格中。这个转载 2015-08-06 16:38:45 · 461 阅读 · 0 评论 -
腾讯电面——C/C++基础之关键字
前言 前两天接到了腾讯的电话面试,问的很基础,但是由于提前没准备,有很多知道的没说出来,现对问到的几个关键字总结如下。 “extern”关键字 有两个作用: extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,该变量或者函数可以在本模块或其他模块中使用。例如,A模块中的变量或者函数要在B模块中使用,则在A模块的头文件中对B模块要引原创 2015-08-19 15:56:38 · 887 阅读 · 0 评论 -
网易电面-静态库与动态库
该博文部分摘自【C++静态库与动态库】 静态库 静态库可以简单的看成是一组目标文件(.o/.obj文件)的集合,即将多个目标文件压缩打包成一个文件。对应的链接方式为静态链接,即在使用该静态库时,会将自己编写的程序的目标文件和静态库文件一起链接生成可执行文件。在运行该程序时,静态库中的函数在代码段有自己固定的地址空间。 静态库的特点 静态库对函数库的链接是放在编译时期完成的,即在转载 2015-08-22 19:51:47 · 477 阅读 · 0 评论