基础知识
Rliny
不想当CTO的程序员就是码农
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
内存字节对齐详解
每次找工作,面对如海的面试题,都能感觉到深深的无力。在C++的面试题中内存字节对齐也是一个老生常谈的话题了,下面就来解析一下内存对齐的原因与计算方式。一、内存字节对齐的原因1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、性能原因: 数据结构(尤其是栈)应该尽可能地在自然边界上原创 2016-07-04 10:34:56 · 1141 阅读 · 2 评论 -
C++ static、const、auto、explicit关键字作用
一、static关键字作用:1、函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;2、在模块内的static全局变量可以被模块内所有函数访问,但不能被模块外的其他函数访问;3、在模块内的static函数只能被这一模块的其他函数调用,这个函数的使用范围被限定在声明它的模块之中;4、在类中static成员变量原创 2016-07-01 16:38:55 · 1527 阅读 · 0 评论 -
C++排序算法之快速排序
七、快速排序,找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正确位置,排序完成。所以快速排序算法的核心算法是分区操作,即如何调整基准的位置以及调整返回基准的最终位置以便分原创 2016-07-01 16:12:11 · 324 阅读 · 0 评论 -
C++排序算法之选择、插入排序
书接上文。接下来是选择排序和插入排序。四、选择排序法,每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。//!选择排序法templatevoid SelectSort(T* Data,int len){ int min = 0; for (int i=0; i<len-1; ++i) { min = i;原创 2016-07-01 16:08:32 · 443 阅读 · 0 评论 -
C++排序算法之冒泡排序
罗列一下排序的一些算法,做个备忘。首先,有个交换数组两个组的函数//!交换数组中两个位置的值templatevoid swap(T* Data,int i,int j){ T tmp = *(Data+i); *(Data+i) = *(Data+j); *(Data+j) = tmp;}一、直接比较排序法,也是最容易想到的一种方法。//!直接比较排序法t原创 2016-07-01 15:49:24 · 370 阅读 · 0 评论 -
C++虚析构函数使用场景
1、什么是虚函数和多态虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,也就是运行时多态,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。编译器对每个包含虚函数的类创建一个表(称为V TA B L E)。在V TA B L E中,编译器放置特定类的虚函数原创 2016-09-20 15:13:46 · 1658 阅读 · 0 评论
分享