自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

没有最好,只有更好!

True mastery of any skill takes a lifetime.

  • 博客(34)
  • 资源 (3)
  • 收藏
  • 关注

原创 赋值运算符函数

面试题1:赋值运算符函数注意要点:是否把返回值的类型声明为该类型的引用,并在函数结束前返回实例自身的引用(即*this),只有返回一个引用,才可以允许连续赋值。否则如果函数的返回值是void,应用该赋值运算符将不能做连续赋值。是否把传入的参数的类型声明为常量引用。如果传入的参数不是引用而是实例,那么从形参到实参会调用一次复制构造函数。把参数声明为引用可以避免这样的无谓消耗,能提高代码的效率。同时

2016-06-30 23:07:48 930

原创 Linux正则表达式与文件格式化处理

第十二章 总结正则表达式简单说,正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找、删除、替换某些特定字符串的处理程序。正则表达式基本是一种“表示法”,主要工具程序支持这种表示法,那么该工具程序就可以用来作为正则表达式的字符串处理之用。如vi,grep,awk,sed等工具,因为他们支持正则表达,所以这些工具就

2016-06-30 15:19:06 2849

原创 学习Bash相关知识

第十一章 总结认识bash这个shell管理整个计算硬件的其实是操作系统的内核(kernel),这个内核是需要被保护的,所以一般用户只能通过shell来跟内核通信,以让内核达到所想要达到的工作。如果要计算机来传输音乐时,需要的东西如下:²  硬件:此时需要的硬件为”声卡芯片”这个配备,否则不会发出声音。²  内核管理:操作系统的内核可以支持这个芯片组,当然还需要提供芯片的驱动程

2016-06-29 21:30:06 3085 3

原创 vim程序编辑器

第十章 总结vi与vim在Linux的系统中使用文本编辑器来编辑你的Linux参数配置文件是一件非常重要的事情。纯文本文件:文件记录只是0与1,通过编码系统来将这些0与1转换成为认识的文字。Linux在命令行界面下的文本编辑器非常多,包括Emacs,pico,nano,joe与vim等。vi与vim重要的原因:²  所有的UNIX Like系统都会内置vi文本编辑器,其他的

2016-06-28 12:47:10 1942

原创 Linux文件压缩与打包

第九章 总结 压缩文件的用途与技术 比较大型的文件通过所谓的压缩技术之后,可以将它的磁盘使用量降低,可以达到减低文件大小的效果,此外,有的压缩程序还可以进行大小限制,使一个大型文件系统可以分成为数个小型文件,以方便软盘携带。 1byte等于8位,对于未使用的位,则置为空。利用一些复杂的计算方式,将这些没有使用的空间丢出去,以让文件占用的空间变小的技术为压缩技术。 压缩可以想象成这样,文件里面

2016-06-27 20:16:24 3885

原创 Linux磁盘与文件系统管理

第八章 总结系统管理的重要任务之一就是管理好自己的磁盘文件系统,每个分区不可太大也不能太小,太大会造成磁盘容量的浪费,太小则会产生文件无法存储的困扰。认识EXT2文件系统Linux最传统的磁盘文件系统使用的是EXT2。磁盘分区与组成整个磁盘的(物理)组成主要有:²  圆形的盘片(主要记录数据的部分);²  机械手臂与机械手臂上的磁头(可读写盘片上的数据);²  主轴

2016-06-26 22:26:51 7307

原创 Linux文件与目录管理总结

第七章总结Linux文件与目录管理包括:在不同的目录间切换、创建与删除目录、创建与删除文件,还有查找文件、查看文件内容等。相对路径与绝对路径绝对路径:路径的写法一定由根目录/写起,如/usr/share/doc这个目录相对路径:路径的写法不是由/写起,如../man。相对路径意指相对于当前工作目录的路径。相对路径的用途:方便切换路径等。绝对路径的用途:对于文件名的正确性来说

2016-06-25 21:05:14 6669

原创 Spring学习

Spring学习Spring框架简介Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,但现在已经不止应用与企业应用,是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。²  从大小和开销两方面而言Spring都是轻量的²  通过控制反转(IoC)的技术达到松耦合的目的²  提供面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的

2016-06-24 22:46:26 2455 1

原创 Java Web基础学习(二)

JavabeanJavabean简介:它是符合某种特定的规范的Java类。使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。Javabean的实现原则:公有类、无参的公有构造方法、属性私有、getter和setter方法。JSP动作元素:动作元素为请求处理阶段提供信息。动态元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性、可

2016-06-24 22:09:33 1140

原创 Java Web基础学习(一)

Java的Web开发学习Web应用程序Web应用程序是一种可用通过Web访问的应用程序。Web应用程序的一个最大好处是用户很容易访问应用程序。用户只需要有浏览器即可,不需要再安装其他软件。软件开发三大方向:²  桌面应用程序(C/S)²  Web应用程序(B/S)²  嵌入式应用程序(安卓,iphone)静态网页与动态网页静态网页:网页中的内容是固定,不会更新,HT

2016-06-24 22:03:10 9318

原创 Linux文件权限与目录配置

第六章 总结Linux最优秀的地方就是:它的多用户、多任务环境。而为了让各个用户具有较保密的文件数据,因此文件的权限管理变得很重要。Linux一般将文件可存取访问的身份分为3个类别,分别是owner,group,others,且3种身份各有read,write,execute等权限。用户与用户组文件所有者用户与用户组的功能可是相当健全而且很好用的一个安全防护。Linux是多用户,多

2016-06-21 21:19:39 3194

原创 Linux初步学习

总结:Linux系统中由于是多个人多任务的环境,所以系统随时都有很多任务在进行,因此正确开关机可是很重要的。不正常的关机可能会导致文件系统错乱,造成数据的毁损。Linux主机都会加挂一个不断电系统。Linux中会话指的是可以使用不同的图形界面来操作整个Linux系统。这个图形界面并不只是将桌面背景更改而已,而是整个显示、控制、管理、图形软件都不相同了。Linux中隐藏文件:文件名开头为

2016-06-21 11:32:59 2402

原创 leetcode_335 Self Crossing

题意分析: 定一个数组x,代表行走的距离,最初的方向是北,每走一步就按逆时针顺序变化方向(北,西,南,东)要求只遍历一次x,并且用O(1)的存储空间,判断走过的路径是否交叉。解题思路: 方法1:分南北和东西方向进行判断出现交叉的情况是:第四条边和第一条边相交,需满足条件是第一条边大于等于第三条边,第四条边大于等于第二天便。同样适用于第五条边和第二条边相交,第六条边与第三条边相交等等,依次向后类推,

2016-06-20 20:36:19 773

原创 leetcode_337 House Robber III

题意分析:给定一棵二叉树,求能获取的权值最大和(相邻的不能同时取)解题思路: 方法1:利用哈希表和递归回溯实现当前的计算需要依赖之前的结果,对于某一个节点,如果其左子节点存在,通过递归调用函数计算不包含坐姿节点的返回值,如果右子节点存在,通过递归调用函数,算法不包含右子节点的返回值,对应此节点的最大值存在两种情况:一是该节点值加上不包含左子节点和左子节点的返回值之和,另一种是左右子节点返回值之和不

2016-06-20 19:50:15 623

原创 leetcode_355 Design Twitter

题意分析:设计简单的Twitter,用户可以发送推文,关注、取消关注另一名用户,并且可看到10条最新的推文推送。设计中需要支持推送,获取最新10条用户新闻推送,关注人关注一名用户,关注人取消一名用户等。解题思路: 方法1:可以利用两个哈希表来做,第一个是建立用户和其所有好友之间的映射,另一个是建立用户和其所有消息之间的映射。由于获得新鲜事需要按时间顺序排列,故可以用一个整型变量cnt来拟时间点,没

2016-06-20 17:09:49 697

原创 leetcode_354 Russian Doll Envelopes

题意分析:给定一些信封的宽和长,当且仅当信封x的宽和长均小于另一个信封y时,x可以装入y,求最多可以嵌套的装几个?解题思路: 利用动态规划进行求解。首先利用信封的宽度进行排序,然后遍历信封,找长度满足条件的信封数目,从而更新dp数组,dp[i] = max(dp[i], dp[j+1])。同时更新result,result= max(result, dp[i])即可。C++实现// 排序然后查找

2016-06-20 14:46:26 779

原创 leetcode_357 Count Numbers with Unique Digits

题意分析:给定非负的整数n,求在0<=x<10^n中,有多少每个位上的数字互不相同的数?如n=2时,范围为[0,100],共有91个数(除了11,22,33,44,55,66,77,88,99)。解题思路: 统计规律如下:i = 1时,10个i = 2时,10个 + 9*9个i = 3时,10个 + 9*9个 + 9*9*8个i = 4时,10个 + 9*9个 + 9*9*8个 + 9*9*

2016-06-20 10:02:08 755

原创 进程环境

7 进程环境7.1 简介进程环境涉及到的主要内容包括:程序执行时,main函数如何被调用;命令行参数如何传递给新程序;典型的存储空间布局;如何分配另外的存储空间;如何使用环境变量;进程的终止方式;longjmp和setjmp函数以及它们与栈的交互等。7.2 main函数C程序总是从main函数开始执行。Main函数的原型是:Int main(int agrc, char *ar

2016-06-19 22:11:48 2159

原创 队列和栈简单实现

数据结构队列队列是一种访问受限的线性表。队列的元素只能从表的一端插入,另一端删除(即队头插入,队尾删除)。 队列的实现中,主要涉及到初始化,入队,出队,判断队空,判断队满,遍历队列等操作。下面是对队列的简单实现。/***环形队列实现*****/// 头文件class MyQueue{public: MyQueue(int queueCapacity); // 初始化

2016-06-19 12:13:40 1116

原创 守护进程

本博客为本人学习UNIX高级环境编程总结。13 守护进程13.1 简介守护进程(daemon)是生存期长的一种进程。它们常常在系统引导装入时启动,仅在系统关闭时才终止。因为它们没有控制终端,所以说它们是在后台运行的。UNIX系统有很多守护进程,他们执行日常事务活动。13.2 守护进程的特征系统进程依赖于操作系统实现。父进程ID为0的各进程通常是内核进程,它们作为系统引导装入过程

2016-06-12 22:58:32 3179

原创 cJSON源码分析

cJSON源码分析简介由于C语言汇总,没有直接的字典,字符串数组等数据结构,所以要借助结构体定义,处理json。JSON是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它是基于JavaScript,Programming Language,Standard ECMA-262 3rd Edition -December 1999的一个子集。JSON采用完全独立于语言的文本格式

2016-06-08 19:20:54 7270

原创 Webbench源码分析

Webbench源码分析简介Webbench是一个在Linux下使用的非常简单的网站侧压工具。它使用fork()模拟多个客户端同时访问url,测试网站在压力下工作的性能。工作原理主函数进行必要的准备工作,进入bench开始压测bench函数使用fork模拟出多个客户端,调用socket并发请求,每个子进程记录自己的访问数据,并切入管道父进程从管道读取子进程的输出信息使用alarm函数进行时

2016-06-07 22:44:38 5705 4

原创 谷歌浏览器快捷键

快捷键功能Ctrl + N打开新窗口Ctrl + 链接网址在新标签页中打开链接Shift + 链接网站在新窗口中打开链接Alt + F4关闭当前窗口Ctrl + T重新打开上次关闭的标签页将链接拖到标签页内

2016-06-05 21:04:16 690

原创 leetcode_330 Patching Array

题目分析:给定一个递增的正整数数组nums和正整数n,利用该数组中的数相加,实现1到n之间的所有数,求至少需要在数组中添加几个数来实现这一要求。解题思路:对于数组中,几个整数相加所能表示的返回时[1,m),则加上一个正整数n(n

2016-06-05 18:15:41 768

原创 C中进程管理函数

C中进程管理函数整体概述atexit():设置程序正常结束前调用的函数execl():执行文件函数execlp():从PATH环境变量中查找文件并执行execv():执行文件函数execve():执行文件函数execvp():执行文件函数exit():结束进程_exit():结束进程执行getpgid():获取进程组识别码getpgrp():获取进程组识别码getpid():获取

2016-06-05 14:46:15 1544

原创 C中信号处理函数

C中信号处理函数整体概况alarm():设置信号传送闹钟kill():传送信号给指定的进程pause():让进程暂停直到信号出现sigaddset():增加一个信号至信号集sigdelset():从信号集里删除一个信号sigemptyset():初始化信号集sigfillset():将所有信号加入至信号集sigismember():测试某个信号是否已经加入至信号signal():设置

2016-06-04 21:33:40 5155

原创 C语言通信处理函数

C语言通信处理函数函数概览 accept():接受socket连线 bind():对socket定位 connect():建立socket连线 endprotoent():结束网络协议数据的读取 endservent():结束网络服务数据的读取 getsocketopt():获得socket状态 htonl():将32位主机字符顺序转换成网络字符

2016-06-04 15:28:49 4170

原创 C中时间/环境/终端控制相关函数

C中时间/环境/终端控制相关函数日期函数time函数time_t time(time_t *t);函数说明:此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t并非空指针的话,此函数也会将返回值存在t指针所指的内存。返回值:成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于error中。settimeofday函数int settimeof

2016-06-04 13:00:09 1367

原创 C语言内存管理函数

C语言内存管理函数memset函数void *memset(void *ptr, int val, size_t num);函数作用:用来将制定指定的前n个字节设置为特定的值。参数说明:ptr为要操作的内存的函数。value为要设置的值。既可以向value传递int类型的值,也可以传递char类型的值,int和char可以根据ASCII码相互转换。num为ptr的前num个字节,size_t是un

2016-06-04 11:26:39 4514

原创 C语言中字符串测试函数总结

C语言字符串测试函数总结isxdigit函数int isxdigit(int c);函数说明:检查参数c是否为16进制数字,只要c为下列其中一个情况就检测成功。16进制数字:0123456789ABCDEF。返回值:若参数c为16进制数字,则返回非0,否则返回0。isupper函数int isupper(int c);函数说明:检查参数c是否为大写英文字母。返回值:若参数c为大写英文字母,则返回

2016-06-03 22:44:12 1392

原创 C中字符串操作函数

C中字符串操作函数strtok函数char *strtok(char *s, const char *delim);函数说明:strtok()用来将字符串分割成一个个判断。参数s指向与分割的字符串,参数delim则为分割字符串,当strtok在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为\0字符。在第一次调用时,strtok()必须基于参数s字符串,往后的调用则将参数设置为NU

2016-06-03 22:12:11 3371

原创 Linux中Vim命令学习

Vi命令总结进入vi的命令vi filename:打开或新建文件,并将光标置于第一行首vi +n filename:打开文件,并将光标置于第n行行首vi + filename:打开文件,并将光标置于最后一行行首vi + /pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename:在上次正用vi编辑时发生系统崩溃,恢复filenam

2016-06-03 16:03:21 748

原创 leetcode_334 Increasing Triplet Subsequence

题目分析:给定一个长度为n的乱序数组nums,求数组中是否存在i,j,k,使得num[i] < num[j] < num[k](0 <= i < j < k <= n-1)。解题思路:设x1为遍历到当前时的最小值,x2为遍历当前时最少有一个数比x2小的数。初始时,将x1与x2均设置INT_MAX,然后遍历数组,不断更新x1和x2,其更原则为:1)若nums[i] <= x1,则x1 = nums[

2016-06-01 23:01:41 582

原创 leetcode_336 Palindrome Pairs

题目分析:给定一组唯一的单词,从中寻找所有的下标对(i,j),使得对应下标的单词拼接,即words[i] + words[j]是回文。解题思路:利用字典map保存单词与下标的键值对;1)若当前的单词word本身是回文,且words中存在空串,则将空串下标bidx与idx加入答案;2)若房钱单词的逆序串在words中,则将逆序串下标rids与idx加入答案;3)将当前单词word拆分为左右两半lef

2016-06-01 22:22:30 1036

剑指offer程序

此程序为剑指offer程序,便于找工作的小伙伴的复习~

2017-01-04

Adaboost算法实现

该Adaboost算法用C++实现的基本Adaboost算法,对于初学Adaboost算法和理解Adaboost算法的学生有一定的帮助!如发现我代码中存在错误或不足,欢迎指正,谢谢!

2015-11-02

缓冲区溢出实验报告

本文档是关于缓冲区溢出实现的整个流程,对做缓冲区溢出有一定的帮助

2015-08-26

空空如也

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

TA关注的人

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