说说我对写技术博客的感受
摘要:前言 其实在读大学时就开始想写技术博客,可是一直都没有开始,就在今年的一个偶然的想法,就陆陆续续开始写自己的博客,后来基本就成为一种习惯,当每遇到或学习了一种 新的技术或知识,第一想法就是整理到自己的博客里去,而以前总是喜欢拿个txt或者word总结整理出来。写到txt或word中一个非常不好的就是
阅读全文
仰视源码,实现strlen
摘要:最近对于C++源码特别感兴趣,读源码,然后根据源码实现一遍,对我帮助蛮大的。下面给出我们天天用的strlen的实现: 普通实现 size_t strlen1(const char* str){ const char* tmp = str; size_t rtn = 0; while(tmp++ !=
阅读全文
字符串匹配算法——Boyer-Moore算法
摘要:字符串匹配算法很多,Boyer-Moore算法也不算是效率最高的算法,它常用于各种文本编辑器的”查找”功能(Ctrl+F)。 比较经典的字符串模式匹配算法还有:Horspool算法、Sunday算法、KR算法、AC自动机等。不多说,进入主题。 Boyer-Moore算法概率 假定字符串为”HERE
阅读全文
KMP字符串匹配算法—用最容易理解的方式描述(整理)
摘要:看了数据结构书上对于快速模式匹配算法KMP的介绍,感觉云里雾里。本文根据自己理解,并查资料整理了一种非常清晰简单的字符串匹配算法,并给予实现,自诩原创吧。 字符串匹配是我们经常要用到的一种算法,与普通的匹配算法相比KMP算法效率更高,时间复杂度为O(m+n)。下面给予详细讲解: 概念详解 设原字符串
阅读全文
LeetCode之RemoveElement
摘要:题目: Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn’
阅读全文
Linux中fork函数详解
摘要:如果对中间的零碎的讲解没有兴趣,可以直接跳到文章末尾,看总结。 一、fork基础知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程
阅读全文
Linux中的经典双链表的实现
摘要:首先上一篇博客介绍了Linux下的两个经典宏,它可以根据结构体中的成员变量地址,计算出结构体地址。有了它,就可以实现可复用的高效双链表。这次我再Windows环境下给予的实现,看完觉得会受益匪浅。 Linux中双向链表的使用思想 它是将双向链表节点嵌套在其它的结构体中;在遍历链表的时候,根据双链表节
阅读全文
Linux下的两个经典宏定义
摘要:本文首先介绍Linux下的经典宏定义,感受极客的智慧,然后根据该经典定义为下篇博客作铺垫。 offsetof宏 定义: 说明:获得结构体(TYPE)的变量成员(MEMBER)在此结构体中的偏移量。 1.( (TYPE *)0 ) 将零转型为TYPE类型指针,即TYPE类型的指针的地址是0。 2.((
阅读全文
C/C++中常用的字符串处理函数和内存字符串函数
摘要:一、 字符处理函数 1. 字符处理函数:<ctype.h> 2. 字符串转换函数:<stdlib.h> 字符转换为数字: 数字转换为字符: 【以上库函数可以用于进制的转换】 类似函数还有: 3. 字符串操作函数:<string.h> 【注意:以上操作都要求目标字符数组有足够的存储空间】 4. 符串比
阅读全文
设计模式之适配器模式(Adapter Pattern)C++实现
摘要:适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 主要解决:主要解决在软件系统中,...
阅读全文
深入理解extern用法
摘要:一、 extern做变量声明 l 声明extern关键字的全局变量和函数可以使得它们能够跨文件被访问。 我们一般把所有的全局变量和全局函数的实现都放在一个*.cpp文件里面,然后用一个同名的*.h文件包含所有的函数和变量的声明。如: 如果将Demo.cpp写成了Demo.c,编译器会告诉你说无法解析
阅读全文
C#注册表操作汇总
摘要:一、注册表基本知识 1) 结构 键->项->子项->值项(名称、类型、数据) REG_SZ 字符串 REG_BINARY 二进制 REG_DWORD 双字 2) 组成 1. HKEY_CLASSES_ROOT 定义了系统中所有文件类型标识和基本操作标识 该主键包含文件扩展名和应用程序关联的信息 主键
阅读全文
高效实现整型数字转字符串int2str
摘要:将数字转换成字符串有很多方法,现在给出一种高效的实现方法。开阔眼界。 char* int2str(unsigned int values){ const char digits[11] = "0123456789"; char* crtn = new char[32]; c...
阅读全文
删除字符串中出现次数最少的字符
摘要:在公交车上看一博客实现删除字符串中出现次数最少的字符,觉得里面使用数组来作为hash非常好,所以我就自己实现一遍。 要求:实现删除一个字符串中出现次数最少的字符,输出删除后的字符,要求安装原来顺序输出。如果出现次数一样,则都删除。 例如:abcabc 则全部删除,输出Null。 aabbccddd
阅读全文