自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 merge-sorted-array-leetcode-C++

题目:Given two sorted integer arrays A and B, merge B into A as one sorted array.Note:You may assume that A has enough space to hold additional elements from B. The number of elements initiali

2016-08-29 21:31:51 529

原创 partition-list-leetcode-C++

题目:Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.You should preserve the original relative order of the nodes in

2016-08-29 21:25:51 519

原创 nginx之第一个helloworld程序

本例子实现一个简单的helloworld程序,在客户端输入test时,网页上显示是hello world,以此来练习nginx的配置文件的书写,以及新添加模块的方法;在nginx中新添加一个模块,需要四步,第一步就是编写模块文件module.c第二步就是编写config文件,第三步就是修改配置文件;第四步就是编译(好多文章中关于第四步叙述的并不详细)第一步, Nginx提供了一种简单的方式

2016-08-22 10:33:15 559

原创 strcpy函数的实现

strcpy函数实现将源地址的字符串,拷贝到目的地址,并且返回指向目的地址的指针;原型为:char *strcpy(char *dst, const char *src);一般我们会比较容易的实现,而不考虑内存重叠;char* strcpy(char* dest,const char* src)//注意src参数有const限定符,防止被修改{ assert(dst != NULL &

2016-08-20 16:04:58 500

转载 快排最优时间复杂度,平均时间复杂度和最差时间复杂度分析

我们来分析一下快速排序法的性能。快速排序的时间性能取决于快速排序递归的深度,可以用递归树来描述递归算法的执行情况。如图9‐9‐7所示,它是{50,10,90,30, 70,40,80,60,20}在快速排序过程中的递归过程。由于我们的第一个关键字是50,正好是待排序的序列的中间值,因此递归树是平衡的,此时性能也比较好。 图9-9-7在最优情况下,Part

2016-08-19 12:46:35 34841

原创 存储映射I/O

存储映射IO使得一个磁盘文件和缓冲区的一个空间相映射,从缓冲区取数据时就表示从文件中读数据,向缓冲区写数据就表示写数据到文件;这样就可以在不使用read和write的情况下执行IO操作;epoll函数便是使用这种技术,提高了描述符状态的传送速度;形式为:mmap(void* addr,size_t  len,int  prot,int  flag,int  filedes,off_t  o

2016-08-18 11:09:13 648

原创 I/O多路复用之poll模型

poll函数:该函数在select函数之后出现,为了克服select的一些缺点,形式如:poll(struct pollfd  fdarray[ ] ,nfds_t nfds ,int  timeout)第一个参数是一个结构体数组指针;数组中的每个元素为一个结构体struct  pollfd;第二个参数指定关心的描述符个数;类型为unsigned long 型,一般认为这个数字是我

2016-08-18 11:04:48 445

原创 I/O多路复用之select模型

select函数:select函数是最早出现的IO复用模型,形式为:select(int maxfd,fd_set * readfds,fd_set * writefds, fd_set * esceptfds, struct timeval* tvptr);共有5个参数:第一个参数是描述符的最大值加1,因为描述符是从0开始的,所以描述符的最大值加1表示告诉内核检查的描述符的最大个数;

2016-08-18 11:02:29 387

原创 STL之hashtable

hash表的概述在平衡树中已经实现了具有对数时间表现的红黑树,而哈希表则是尝试以一种具有常数时间的表现的数据结构;哈希表主要是通过将大数映射到小数的方法进行,但是哈希函数的存在也带来了一些问题;因为hash函数的存在,hashtable总体有三种形式:线性探测,二次探测和开链法;1)线性探测,hash函数计算出哈希值为H,当空格H已经有元素占用,那么就执行H+i,i,1,2

2016-08-16 19:17:18 466

原创 STL之AVL树

关联式容器之所以说是关联式容器,每笔数据都有一个键值和一个实值,当元素插入关联式容器时,容器会按照键值大小,依据特定规则(set,multiset,map,multimap是红黑书,hash是hash表)将元素放在特定位置;所以关联式容器就不会有push_back( )  pop_back( ) push_front( ) pop_front( )等操作;首先了解一下树的深

2016-08-16 19:07:56 1727

原创 STL之deque容器

deque容器:应该是比vector和list要复杂得多的容器了,它与vector的区别主要有两点:1)它类似于vector容器的连续,但是又不是完全连续,它利用一个中控单元实现假象的连续,中控单元中的每一个元素都管理者一个缓冲区(其实就是一个固定大小的数组);2)但是在vector中当空间不足时,是需要重新分配一个新的空间,然后将现有的元素移动过去,然后销毁原来的空间,这个在dequ

2016-08-15 21:20:46 305

原创 STL之list容器

list容器list容器相比于vector最大的优点是:不浪费空间;每次向容器中插入一个元素就分配一个空间,删除一个元素就会销毁一个空间(包括erase,remove,clear);因为list是链表形式,所以它的迭代器不可以使用iter+n操作来跳过n个元素(这个只有vector和deque可以实现);同时list容器也没有【】操作符,cout迭代器支持的

2016-08-15 21:17:51 292

原创 STL之vector容器

vector容器是一种类似于数组的容器,主要差别是vector可以实现自增长;在对于vector容器调用resize函数时,形式为resize(N,val),STL会先判断当前的元素size个数是否大于要调整的大小N,如果大于,则直接将大于N的那部分元素擦除(调用erase函数),capacity不变;如果小于,则会在当前的最后一个元素后边添加”N-size“个val值,这时capacit

2016-08-15 21:16:16 374

原创 大数加减法(面试准备)

大数加减法,使用string类型来表示数字//思路:1):对于两个正数或者是负数相加,则直接相加2):负数加上正数,则相当于正数减去负数代码如下:/**大整数的加减法*/#include #include using namespace std;int myminus=0;//0 表示没有负号,1表示有string bignumdel(string str1,st

2016-08-15 18:36:11 479

原创 线程安全与可重入总结

总结:①可重入函数一定是线程安全的;②可以通过加锁将不可重入函数变成线程安全的;③线程安全的函数不一定是可重入的;解释:根据正常情况,当一个信号发生时,如果进程并没有对该信号进行屏蔽,信号 可能在任意时候打断一个进程的任意一个线程而执行。一个函数可以是可重入的,也可以是线程安全的,也可以两者都是,或者两者都不是。1、可重入函数:相对于信号而言,如果该函数A1正在执行过程

2016-08-15 13:32:35 779

空空如也

空空如也

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

TA关注的人

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