自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++ 异常处理流程

#include #include using namespace std;class A{public: A() { cout << "this = " << this << "\tA constructor called" << endl << endl; } A(const A &a) { this->m_st

2015-07-26 12:48:21 581

原创 C++ 智能指针的简单实现

上代码智能指针类#ifndef __SMARTPTR_H__#define __SMARTPTR_H__// 智能指针模版类templateclass SmartPtr{public: SmartPtr(T *ptr); ~SmartPtr();public: T& operator*(); T* operator->();privat

2015-07-26 12:40:19 521

原创 c++ 与C# 单例代码简单实现

#include using namespace std;// 单例类-----懒汉式 : 在需要时才会创建单例对象class Singleton{public: static Singleton* getInstance(); // 获取或创建单例对象 ~Singleton();private: Singleton(){} // 将构造函数声明为私有

2015-07-26 00:22:51 440

原创 Vector::assign的使用

Vector::assign的使用1.      assign(num1, num2)assign语句执行之前执行语句intVec1.assign(4,10)之后可以看到assign赋值方法,释放了原来的数据空间,并分配了新的数据空间,Assing(x, y)  x表示元素个数, y表示所有元素要初始化的数值1.      c11 方式的

2015-07-25 22:03:00 30141 5

原创 vector::push_back 方法分析

vectorint>intVec1 = { 1, 2 };    intVec1.push_back(3);    intVec1.push_back(4);intVec1.push_back(5); 调用push_back成员函数之前执行语句 intVec1.push_back(3);之后可以看到把原来旧值复制到了新分配

2015-07-25 21:53:18 5330

原创 STL vector的N种构造方式

1 使用默认无参的构造函数进行构造vector intVect;观察内存可以看到生成一个带有0个元素的vector时内存中_Myfirst _Mylast _Myend的值均为0,说明vector对象并没有在堆中分配任何存储空间,仅仅是在栈中分配了16字节存储vecotr对象元素,在这16字节中前4字节如果没猜错,应该是一个虚表指针。Vecotr模版类有三个成员变量

2015-07-25 21:46:17 7127

原创 c++ STL queue 内存布局简析

stack    deque    queue 没想到他们三的内存分部结构是一样的!!!

2015-07-14 16:16:22 2849

原创 c++ STL stack 内存布局简析

第一次插入4个元素再次插入两个元素和deque的内存布局是一样一样的啊!

2015-07-14 15:52:19 899 1

原创 C++ STL deque 内存布局

第一次添加4个元素再次添加4个元素        通过以上观察可以发现deque 所添加的数据元素在内存中并不全是连续线性的。 而是先在堆中分配一块内存空间 以供使用, 如果添加元素超过分配空间大小 ,则在堆中再分配相同大小内存空间 用来存储新加入的元素。如此往复......

2015-07-14 15:24:13 1442

原创 STL vector swap 交换操作是这样的

两个 vector对象 交换之前交换之后        通过观察可以发现交换的并不是vecotr的数据空间,而仅仅是对vecotr对象所在栈内存空间的16字节进行了交换。达到间接交换的目的。 这样做的好处就是减小开销。因为 堆内存要进行交换的话就会有内存重新申请和释放的操作。

2015-07-14 14:24:40 3371

原创 STL vecotr 和 vector 正反序 迭代器简析

构造一个vector对象时,会在vector对象内存存储所分配数据在堆中的首地址,和“end”的地址, 那么.size()就可以很容易得通过 “end"-首地址 获得, 同样也可以很容易获得 .begin()    和.end()

2015-07-14 13:36:50 669

原创 全局变量和静态变量分析

内存分部区域 gInit全局变量和静态的局部变量sInit 通过调试内存观察可以得知,这两种数据类型都是存储在同一个内存区域中,这个区域通常被称为,全局数据区,或静态区。在英文文档中则称这部分区域为 data段,而又因为这两个数据在声明时并时行了初始化操作,所以再细分则存储在data段中的初始化数据段的读写段(rw); 而gNonint全局变量和静态的stNoneInit局部变

2015-07-11 11:21:41 1098

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除