- 博客(24)
- 收藏
- 关注
原创 二叉树总结
1.基本概念满二叉树:除最后一层外,每一层上的所有节点都有两个子结点,最后一层都是叶子结点。完全二叉树:满二叉树最后一层,从右往左删除几个结点。堆是一个完全二叉树。二叉排序树:左子树的值小于根结点,右子树的值大于根结点,且左右子树都是二叉排序树。平衡二叉树:左右子树深度差的绝对值小于1。2.二叉树的创建二叉树结点的定义:typedef struct Bitnode
2015-08-12 11:38:40
512
原创 常见库函数的实现
字符串拷贝,返回指针是为了实现链式操作,如strlen(strcpy(dst, src)),des需要保证有足够空间char* strcpy(char* des,const char* src){ assert(des!=NULL && src!=NULL); char* temp = des; while((*des++ = *src++ )!='\0') ; retu
2015-08-08 19:32:38
391
转载 HTTP协议详解
转载自:http://blog.youkuaiyun.com/gueter/article/details/1524447引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是H
2015-08-04 14:33:58
300
转载 qsort函数、sort函数
qsortvoid qsort( void *base, size_t num, size_t width, int (__cdecl *compare )int compare (const void *elem1, const void *elem2 ) );参数意义如下:第一个参数 base 是 需要排序的目标数
2015-07-05 12:59:09
363
转载 二维数组作为函数参数传递剖析
转载自:http://www.cnblogs.com/wuyuegb2312/archive/2013/06/14/3135277.html前言 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错://对于一个2行13列int元素的二维数组//函数f的形参形式f(int daytab[2][13]) {...}//以下两种可以忽略行数f(i
2015-06-19 09:48:35
543
转载 几种查找数组的前K个最小值的算法
转载自:http://blog.chinaunix.net/uid-20937170-id-3347493.html1、对数组进行排序,然后前K个元素就是需要查找的元素,排序的方法可以采用快速排序,但是我们知道在快速排序中如果已经是有序的数组,采用快速排序的时间复杂度是O(N^2),为了解决这种问题,通常选择随机选择一个数组值pivot作为基准,将数组分为S1 = pivot,
2015-05-29 16:33:49
1456
转载 关 于 PV 操 作
转载自:http://blog.youkuaiyun.com/leves1989/article/details/3305609在计算机操作系统中,PV操作是进程管理中的难点。首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S³0,则
2015-05-18 11:23:59
522
转载 sleep(0)
转载自:http://blog.youkuaiyun.com/lgstudyvc/article/details/9337063我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 1
2015-05-18 10:47:14
276
转载 C++类内存分布
转载自:http://www.cnblogs.com/jerry19880126/p/3616999.html书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来:
2015-05-13 20:32:00
420
转载 static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
转载自:http://www.cnblogs.com/jerry19880126/archive/2012/08/14/2638192.html隐式转换(implicit conversion)short a=2000;int b;b=a;short是两字节,int是四字节,由short型转成int型是宽化转换(bit位数增多),编译器没有warni
2015-05-04 21:21:27
400
转载 拷贝构造函数
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:1. int a = 100; 2. int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。1. #include 2. using namespace std; 3.
2015-04-28 16:55:24
482
转载 虚函数和纯虚函数的区别
转载自:http://blog.youkuaiyun.com/hackbuteer1/article/details/7558868首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函
2015-04-28 16:51:30
833
原创 char str[] 和char* str区别
1 char* get_str(void) 2 { 3 char str[] = {"abcd"}; 4 return str; 5 } char str[] ={"abcd"};定义了一个局部字符数组,尽管是数组,但它是一个局部变量,返回它的地址肯定是一个已
2015-04-28 10:57:49
441
转载 C++头文件编译问题
一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separatecompilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的.cpp文件里。.cpp文件里的东西都是相对独
2015-04-28 10:36:33
522
转载 C++中什么时候调用副本构造函数初始化一个类对象
转载自:http://blog.sina.com.cn/s/blog_6ab0b9a801019b3h.html三种情况需要调用副本构造函数:(1)明确表示由一个对象初始化另一个对象时;//其实这一点可用(2)来理解,本质上相同(2)当对象作为函数实参传递给函数作形参时;(3)当对象作为函数值进行返回时。 第一种比较好理解,这里不再陈述什么了;第二种情
2015-04-28 10:10:09
1159
转载 数组指针和指针数组的区别
转载自:http://www.cnblogs.com/mq0036/p/3382732.html数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];
2015-04-28 10:08:01
297
转载 类对象大小的 sizeof 计算问题
转载自:http://blog.youkuaiyun.com/heipiaibenben/article/details/7870800一、类对象大小的 sizeof 计算问题 .首先,来看看一个只有构造函数和析构函数的空类:[cpp] view plaincopy#include using namespace std; clas
2015-04-28 10:04:55
618
转载 八大排序算法
转载自:http://blog.youkuaiyun.com/hguisu/article/details/7776068排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序
2015-04-28 09:08:34
374
转载 全局变量、局部变量、静态全局变量、静态局部变量的区别
转载自:http://www.cnblogs.com/chenglei/archive/2009/09/06/1561367.htmlC++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域。从作用域看:全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其
2015-04-27 22:27:23
571
原创 输入函数总结
cin 用法1:最基本,也是最常用的用法,输入一个数字: #include using namespace std; int main () { int a,b; cin>>a>>b; cout } 输入:2[回车]3[回车] 输出:5 用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束 #inc
2015-04-27 22:09:17
332
转载 Windows 下的socket编程
转载自:http://blog.youkuaiyun.com/eldn__/article/details/7927171ocket 源于unix,Socket就像我们使用CDC作图一样,免去了程序直接和设备驱动程序打交道的麻烦。就是提供给我们用来操作底层硬件的接口函数。工作方式大概描述如下:Socket也即是我们通常所说的套接字,其存在于通信区域中。通信区域也
2015-04-27 21:32:02
467
转载 sizeof用法总结
转载自:http://www.cnblogs.com/wanghetao/archive/2012/04/04/2431760.html关于sizeof(string),今天看那本面试宝典的时候看到这个表达式,有点吃惊,书上写着sizeof(string)=4;当时很纳闷,难道分配4个字节大小的内存给string吗?查阅了相关资料得出结论:string的实现在各库中可能有所不同,但是在同一
2015-04-27 11:20:05
365
转载 size_t 和 size_type的区别
为了使自己的程序有很好的移植性,c++程序员应该尽量使用size_t和size_type而不是int, unsigned1. size_t是全局定义的类型;size_type是STL类中定义的类型属性,用以保存任意string和vector类对象的长度2. string::size_type 制类型一般就是unsigned int, 但是不同机器环境长度可能不同 win32 和wi
2015-04-27 10:57:56
700
转载 程序员面试宝典 第三版 错误
原文地址:http://blog.youkuaiyun.com/hehao5/article/details/8686339这篇总结写到一半时,谷歌一下,发现早有大神总结的宝典中的错误,从他的总结中可以看出来这位大神无论是心思还是技术都比我细腻。 但我找到的一些错误他也没发现,两个人的答案并起来会好一点。强烈推荐:《程序员面试宝典3》大量错误(50+)纠正表 :http://blog.youkuaiyun.com
2015-04-26 12:57:36
417
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人