摘要:
虚函数(实现类的多态性) 这里再解释一下类的多态: 即接口的多种不同实现方式。更直观来说就是同一成员函数让不同的对象使用,可以实现不同的功能。这就是多态。 虚函数的函数调用发生在运行阶段,而不是发生在编译阶段,称为动态联编(动多态)。虚函数的调用需要间接的内存寻址动作,从而使动态联编的效率下降 注意 阅读全文
摘要:
先任意找数组中的一个元素a,采用快速排序将数组进行一次划分,即将小于a的元素放在其左侧,大于a的元素放在其右侧。然后判断元素a是否满足题目为第k小的数,满足则直接输出,否则判断下一次在哪一区间进行划分。 和快速排序的算法基本一样,只是当找到第k小的数之后就直接退出了,时间复杂度为O(n) //找第k 阅读全文
摘要:
一、输出螺旋矩阵 按顺时针方向,右、下、左、上逐个输出,往右方向的输出比上、左两个方向的输出多一个,往下方向的输出比上、左两个方向少一个 #include<iostream> using namespace std; int a[105][105]; int n,num=1; int main() 阅读全文
摘要:
什么是内存抖动 是指在短时间内有大量的对象被创建或者被回收的现象,内存抖动出现原因主要是频繁(很重要)在循环里创建对象(导致大量对象在短时间内被创建,由于 新对象是要占用内存空间的而且是很频繁, 内存抖动的影响 如果抖动很频繁,会导致垃圾回收机制频繁运行(短时间内产生大量对象,需要大量内存,而且还是 阅读全文
摘要:
什么是对象池 对象池是一种空间换时间的技术,对象被预先创建并初始化后放入对象池中,对象提供者就能利用已有的对象来处理请求,并在不需要时归还给池子而非直接销毁 它减少对象频繁创建所占用的内存 空间和初始化时间 对象池原理 描述一个对象池有两个很重要的参数,一个是这个对象池的类型,另一个是这个对象池可以 阅读全文
摘要:
为什么要内存对齐 cpu在读取内存时是一块一块进行读取的,块的大小可以是2,4,8,16(总之是2的倍数)。 64位系统默认是8字节,块的大小也可以自己用宏定义:#pragma pack(nSize); CPU和内存IO的硬件限制导致没办法一次跨在两个数据宽度中间进行IO。 假如对于一个c的程序员, 阅读全文
摘要:
可变参数模板 原文链接: http://blog.csdn.net/xiaohu2022/article/details/69076281 普通模板只可以采取固定数量的模板参数。然而,有时候我们希望模板可以接收任意数量的模板参数,这个时候可以采用可变参数模板。对于可变参数模板,其将包含至少一个模板参 阅读全文
摘要:
首先,我们都知道类的成员函数可以访问类的数据(限定符只是限定于类外的一些操作,类内的一切对于成员函数来说都是透明的),那么成员函数如何知道哪个对象的数据成员要被操作呢,原因在于每个对象都拥有一个指针:this指针,通过this指针来访问自己的地址。 注意: 1、this指针并不是对象的一部分,thi 阅读全文
摘要:
模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。 使用模板的目的就是能够让程序员编写与类型无关的代码。通常有两种形式:函数模板和类模板 一、函数模板 函数模板 针对仅参数类型不同的函数,使用函数模板可以使 阅读全文
摘要:
一、构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。一般不在构造函数内声明变量 构造函数可以有参数,也可以不带参数 不带参数 #include < 阅读全文