STL及一些容器底层实现机制
摘要:1、vector容器 vector的数据安排以及操作方式,与数组类似。俩这唯一的区别就是空间的运用灵活性。数组是静态空间,一旦配置了就不能改变,vector是动态数组。在堆上分配内存。vector是动态空间,随着元素的加入,它的内部机制会自动扩充空间容纳新的元素当前大小实惠再分配内存,这个大大影响了
阅读全文
C++ union的用法
摘要:联合(union)在C/C++里面见得并不多,但是在一些对内存要求特别严格的地方,联合又是频繁出现,那么究竟什么是联合、怎么去用、有什么需要注意的地方呢?就这些问题,我试着做一些简单的回答。 1、什么是联合: 联合 是一种特殊的类,也是一种构造类型的数据结构。在一个联合,内可以,定义多种不同类型的数
阅读全文
C++双链表实现
摘要:#ifndef _TOU_H_ #define _TOU_H_ template struct DNode { public: T value; DNode* prev; DNode* next; public: DNode() {} DNode(T t, DNode*prev, DNode*next) { this->value = t; this->prev = prev...
阅读全文
C++中虚函数的实现机制
摘要:1、 什么是虚函数。 虚函数由于必须是在类中声明的函数,因此又称为虚方法。所有以virtual修饰符开始的成员函数都成为虚方法。此时注意是virtual修饰的成员函数不是virtual修饰的成员函数名。 例如:基类中定义: virtual void show(); //由于有virtual修饰因此是
阅读全文
C/C++函数的调用过程
摘要:堆栈中的变量分布是从高地址到低地址分布,EBP是指向栈底的指针,在过程调用中不变,又称为帧指针。ESP指向栈顶,程序执行时移动,ESP减小分配空间,ESP增大释放空间,ESP又称为栈指针。 下面逐步分解函数的调用过程: 1、函数main执行,main各个参数从右向左逐步压入栈中,最后返回地址。 2、
阅读全文