自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Everlasting2016的博客

我流我的汗水 华丽如天花乱坠

  • 博客(20)
  • 收藏
  • 关注

原创 私有的静态成员变量

一、问题最近在看>的时候对自己掌握的类的私有的静态成员变量的初始化产生了怀疑,下面就是自己的对与这个知识点的复习与总结二、探索1、静态成员变量不能进进行赋值下面程序会报错class A{ static int i=0;};其实只有const修饰的成员变量才能这样进行赋值下面程序就是正确的class A{ const int i=0;};2、静态公用的成员

2016-06-30 18:37:07 2950 1

原创 Linux下的文件查找命令——find

一、find命令find                                   实际搜寻硬盘查询文件名称通常情况下find命令并不是很常用,大家都优先使用whereis和locate命令来查找,因为whereis和locate命令都是利用数据库来查找文件所在,并没有实际查询硬盘,所以速度很快,节省时间。但是我们的find命令依然很强大,它的查找条件相当多,对于用其他命

2016-06-20 08:46:30 2185

转载 Linux进程控制块PCB结构:task_struct 描述

一、task_struct 结构描述1.进程状态(State)进程执行时,它会根据具体情况改变状态。进程状态是调度和对换的依据。Linux 中的进程主要有如下状态,如表4.1 所示。(1)可运行状态处于这种状态的进程,要么正在运行、要么正准备运行。正在运行的进程就是当前进程(由current 宏 所指向的进程),而准备运行的进程只要得到CPU 就可以立即投入运行,CPU 是

2016-06-17 09:21:21 973

原创 构造函数和析构函数中抛出异常

一、构造函数1、结论:不会造成内存泄漏2.为什么?

2016-06-12 17:07:04 783 1

原创 进程篇上之初识进程(2)

三、进程标识符1、获取当前进程的pid(1)getpid函数返回值:无符号整形或者长整形(2)编写程序进行查看首先编写makefile:my_pid:my_pid.cgcc -o my_pid my_pid.c.PHONY:clean(依赖关系暂时为空)rm -f my_pid主程序:#include#include#include

2016-06-11 22:53:09 438

原创 进程篇上之初识进程(1)

一、进程重点:(1)什么是进程(2)进程与应用程序的区别1、进程(1)说到进程,进程不是以前所谓的二进制文件(进程是要处理的事件),不光要有运行程序还要有管理信息(系统不直接与硬件打交道,而是与软件打交道,驱动直接与硬件打交道)(2)进程是由进程控制块、程序段、数据段三部分组成;(3)现在将进程描述出来,一个pcb代表一个进程(pcb是进程的唯一标识),系统可以通过pcb可

2016-06-10 16:06:42 429

原创 哈夫曼树

一、定义Huffman树,又称为最优二叉树,是加权路径长度最短的二叉树。简单的来说就是权值越大路径越短(权值),这样整体最优(权值*路径长度的和最小)二、证明huffman编码是最优编码设某个Huffman编码加权和为∑(Ai*Pi),若存在更优的非H编码,不妨设其中与H编码中权重Pi的位置Ai与Pj的位置Aj调换位置(Pi>Pj),则有Pi*Aj+Pj*Ai>Pi*Ai+Pj*A

2016-06-10 09:49:15 756

原创 位运算求相反数

一、解法n的相反数等于(~n+1)二、适用范围· 对于取相反数之后不会产生溢出的情况都适用三、具体解释1、对于正数对于正数的相反相反数来说,原码就是除符号位变为1,其他不变,计算机中 对于一个数字来说存储的都是其补码,负数的补码为符号位不变其他位按位取反,然后将得到的结果+1而~n+1的过程第一步就是将符号为变为1,变为其相反数原码的情况,然后剩下的过程就是相反数求补码

2016-06-10 08:52:29 5327 1

原创 二叉树

一、简单介绍1、以前的数据结构重点都死在结构,而现在的二叉搜索树重在应用 2、二叉搜索树的简单性质(1)每一个节点的key值都是不同的(2)所有的节点的左节点都小于当前节点,所有的右节点大于当前节点(3)所有节点的左右子树都是二叉搜索树3、二叉搜索树应用在查找上面,时间复杂度与二分查找相类似注意哈希表也是用来查找的(key形式是用来过滤的,而KV形式是用来查找信息的)

2016-06-08 17:53:30 293

原创 Linux基础篇五(进度条)

一、基本思路主要就是模仿一些模仿一些游戏或者软件在安装的过程中的进度条。主要包括一下几个方面:(1)进度条(2)进度的数字显示(%多少了)(3)用一个标识标志文件是否任务还在进行三、背景知识的铺垫1、缓存区先来看两份代码:第一份:#includeint main(){ printf("hello world"); sleep(5); retu

2016-06-08 07:50:25 448

原创 排序三(归并排序)

一、比较排序1、归并排序其实和两个有序单链表的排序有点相似,不断划分子区间,然后将每一个有序的子区间两两进行合并(需要借助一个额外的空间,将合并的区间拷下来),直到最后合成一个区间,排序就完成了其实归并排序也称外排序(对内存可以进行排序,对磁盘也可以进行排序)。例如有这么一个题:要求排序100万个数,这些数无法都加载到内存中去,请设计一个算法排序这100万个数。这道题就可以利用归并排序

2016-06-07 12:35:03 420

原创 非比较排序

一、什么是非比较排序区别传统的比较算法,不通过其中两个数的大小直接比较,来排序整个数列二、具体实现1、计数排序很好理解,就是对应每个数我们统计每个数字出现的次数,然后用一个直接定址的哈希表来存放数据,在通过遍历这个哈希表,进而就可以排好序了(1)代码实现void CountSort(int arr[], int size){ assert(arr); int mi

2016-06-06 07:48:20 1770

原创 排序

一、插入排序1、直接插入排序void InsertSort(int arr[], int size){ if (arr == NULL || size <= 0) return; for (int i =1; i < size-1; i++) { int end = i;//一个有序序列的结尾 int tmp = arr[i+1]; while (end >= 0

2016-06-05 10:30:42 280

原创 4月面试总结

一、腾许实习生(软件开发--后台开发方向)1、题目为选择题和编程题,总体来说题不是很难2、选择题考了太多我没有学过的内容,我只是自学过c和c++,而考了太多的数据结构、网络和操作系统的知识,看来还要继续努力3、编程题

2016-06-04 07:40:50 558

原创 排序之快速排序

一、基本思想 快速排序的基本思想都是大的数据往后放,小的数据往前放,key放在对应的正确的位置上,且由key划分的区间两边数据所在区间的位置都是正确二、递归实现1.方法一:双向扫描法两边同时扫描,begin遇到比key大的停下来,而end遇到比key小的停下来,然后两者交换,直到两个指针相遇(注意两个元素组成的有序区间的情况)void QuickSort(int arr[]

2016-06-04 07:38:08 472

原创 Linux工具篇---make和makefile

一、大体介绍make是一条指令,而makefile是一个文件(当前目录下的)make命令执行的时候,需要一个makefile文件,以告诉make命令需要怎样的去编译和链接程序(自动完成,就不用手动gcc繁琐的一个一个去执行了)二、依赖关系和依赖方法1、依赖关系makefile就是这个依赖关系,window下编译器就自己完成了这个工作简单的例子:你上大学,依赖于父母,

2016-06-02 08:23:11 509

原创 #pragma once与 #ifndef的区别

一、为了避免同一个文件被include多次的方法1 #ifndef方式2 #pragma once方式二、具体用法1、方式一:#ifndef __SOMEFILE_H__#define __SOMEFILE_H__... ... // 一些声明语句#endif2、方式二:#pragma once... ... // 一些声明语句三、各自的区别和优缺点1、

2016-06-01 16:27:13 329

原创 extern "C"的作用

一、 extern "C"的主要作用extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一

2016-06-01 16:10:32 487

原创 二分查找

一、查找key元素所在的下标//1、查找key所在位置的下标int BinarySearch(int arr[], int len,int key)//[left,right]{ if (arr == NULL || len <= 0) return -1; int left = 0; int right = len - 1; while (left <= right) {

2016-06-01 14:03:11 331

原创 哈希表的开链法

一、开链法的优势闭散列最大的局限性就是空间利用率低,例如载荷因子为0.7,那么仍有0.3的空间未被利用使用开链法可以使载荷因子为1,每个链上都挂常数个数据,对于哈希表的开链法来说,其开的空间都是按素数个依次往后开的空间· 那么什么时候扩容呢?当每个链上都挂上数据之后,载荷因子为1的时候,就可以开始扩容了二、KV节点和仿函数的定义1、定义KV节点templatestruct

2016-06-01 09:16:10 2476

空空如也

空空如也

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

TA关注的人

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