自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 C++继承的各种模型

首先我们需要知道 如果继承中涉及虚函数 ,就会从在虚表,所谓的虚表就是存储虚函数地址的表格。子类继承的话,子类自己的函数会重写所有父类的满足条件的所有函数,其余的虚函数会保存在第一个父类的虚表中。 如果是虚拟继承的话,在菱形继承的条件下,防止的是数据的冗余,最顶层的父类的内容会保存在模型的最底端,他的一级子类会保存一个虚基表,该表存放的是子类对于他的偏移量。 在visual studio201

2017-11-30 09:00:35 448

原创 算法—直接插入排序

直接插入排序算法的思想: 我们要把一个数插入到已经有序的数据中,选取待排序的无序数据中的第一个数据,看做为一个已经有序的数列,然后依次将其余无序数据插入到这个有序的数列中。#include<iostream>using namespace std;struct Greater{ bool operator()(int x,int y) { return x>y;

2017-11-20 13:45:08 297

原创 数据结构—位图

在计算机中,每一个数据都是以二进制0/1来保存,每一个字节byte包括8个bit,每一个bit存储一个0/1的信息。 一 .为什么使用位图我们可以通过对每一个bit位的操作来标识一些信息,比如当当前bit为0时,表示不存在,当当前bit为1时,表示存在。 而位图正是利用每一个bit位能标识两种不同的信息。那么我们在构建位图之前,我们先来了解下,在计算机中的位运算。 运算符 含义 &

2017-11-14 11:41:55 450

原创 数据结构—开散列哈希算法

哈希表在插入和查找拥有好高的效率,当数据足够的多时,相比于平衡树,效率几乎是平衡树的两倍。 开散列哈希具有的优势就是,哈希表中存放着链表的地址,每个进来的数据通过哈希函数求得位置,存放在相应位置的链表中。查找数据时,只需要查找该数据通过哈希函数求得的位置下的链表中是否存在,就能高效的完成查找;插入时,只需要对该数据通过哈希函数求得位置的链表进行头插就可以。#include<iostream>#i

2017-11-12 20:50:38 682

原创 数据结构—Hashtable(闭散列)

哈希表是常见数据结构中一种拥有高效插入,高效查找的结构,时间复杂度为O(1)。闭散列哈希的不足之处就是随着冲突的数据增多,插入的效率也会随之变慢,为了优化闭散列哈希的效率,我们可以采取以下的方式:>1.当插入的数据占总大小的一定比率的时候,也称负载因子,我们可以对哈希表进行扩容,重新通过哈希函数求得位置插入。 >2.我们可以采用素数表的形式,来减少哈希冲突的可能。 >3.通过更好优化的哈希函数,

2017-11-08 19:57:05 515

原创 C++—string类写实拷贝的实现

>1.本次实现string为写实拷贝版本,参照new[]的形式,我们每次实现申请空间时,多在前面开辟4个字节来存放我们的引用计数,所谓的引用计数就是记录当前空间有多少对象在使用。也就是浅拷贝的形式。>2.为了完善string的实现,我们在不进行修改当前空间时,多个对象可以对公用的空间读取,我们采用浅拷贝的形式对这块空间管理,引用计数的值代表当前空间有多少对象在使用,没有一个对象交出主动权,引用计数减

2017-11-07 16:30:00 387 1

原创 C++—String类接口的实现

对c++string库部分接口的实现,通过接口间的复用,使个个接口紧密联系,更加简洁。 重要接口Expand()通过检测当前对象容量是否满足要求,对对象进行扩容等操作。 此次实现string全部使用的是深拷贝。#include<iostream>#include<string.h>#include<assert.h>#include<string>using namespace std;

2017-11-07 16:04:24 426

空空如也

空空如也

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

TA关注的人

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