随笔分类 - C/C++
摘要:我会用几篇博客总结一下在Linux中进程之间通信的几种方法,我会把这个开头的摘要部分在这个系列的每篇博客中都打出来 进程之间通信的方式 管道 消息队列 信号 信号量 共享存储区 套接字(socket) 进程间通信(五)—信号传送门:http://www.cnblogs.com/lenomirei/p
阅读全文
摘要:我会用几篇博客总结一下在Linux中进程之间通信的几种方法,我会把这个开头的摘要部分在这个系列的每篇博客中都打出来 进程之间通信的方式 管道 消息队列 信号 信号量 共享存储区 套接字(socket) 进程间通信(一)—管道传送门:http://www.cnblogs.com/lenomirei/p
阅读全文
摘要:我会用几篇博客总结一下在Linux中进程之间通信的几种方法,我会把这个开头的摘要部分在这个系列的每篇博客中都打出来 进程之间通信的方式 管道 消息队列 信号 信号量 共享存储区 套接字(socket) 进程间通信(二)—消息队列传送门:http://www.cnblogs.com/lenomirei
阅读全文
摘要:在学习了Linux的进程控制之后,学习了fork函数和exec函数族,通过这些个函数可以简单的实现一份shell,就是实现一份命令行解释器,当然是简单版的,实现功能如下 还不能实现正则表达式,要实现这个我当前的代码根本不能用,要重头开始改写。。。 下面贴代码 通过gethostname获取主机名,通
阅读全文
摘要:在上Linux课的时候,老师提到一句,调用vfork产生的子进程就是为了使用exec族函数来执行其他的代码逻辑。 在子进程退出的时候有两种方式,exit和exec族函数,不能使用return,为什么不能用return呢,为什么只有vfork会不让用return呢? 于是我就写了这样的代码 不出所料出
阅读全文
摘要:在牛客网上刷题的时候看见这么一道题 这很明显是对我对父子执行流的严峻考察,很好,我喜欢,然后我错了。。。腾讯实习生招聘的时候在线笔试题也有类似的题目,不过是把-换成可hello world而已,可见还是蛮重要的。这种题目只要画一下图很快就能理解了 显而易见的6次 贴出结果 那么接下来来个升级版的 执
阅读全文
摘要:好久没写博客了,学校开始实习,找了一个极破的地方,站公交将近两个小时,一天来回就要死了,说是实习,就是变着样的培训,一点实习的意思都没有,辣鸡。 这次讲解一下C++函数调用,学了这么久C语言,肯定听说过栈(数据结构啊,地址空间的栈啊之类的),函数调用就和栈密切相关。 因为地址空间内的栈是从高地址向低
阅读全文
摘要:实现了一个简单的进度条,主要技术啥的算不上,但有几个需要注意的点 首先是回车符,回车符可不是\n,我们可以把\n看成是两个动作的合体,分别是,回车和换行,都有自己对应的符号,这利用回车符一直在同一个位置输出造成动态的假象 因为没有用到\n和换行,但是C语言的printf是行缓冲输出,什么意思呢?就是
阅读全文
摘要:多态的实现分为静态多态和动态多态,静态多态主要靠函数重载,动态多态主要靠虚函数 当类中声明了虚函数之后,该类的内存映像会获得一个虚表指针,叫做_vfptr指向该类的虚表,下面的我测试使用的类图(有的没必要的东西没有写) 这里恰好还是一个菱形继承,但是就像我之前说的虚继承和虚表关系不大,所以单继承也是
阅读全文
摘要:最新更新strncpy strstr函数 学过C语言都知道的几个str函数,同学面试腾讯的时候也问到了strlen的递归实现,我也给出来~ strlen的实现 话说这真的不是很难,要说难一点的还是mem函数的内存覆盖有点东西 strlen的递归实现 strcpy的实现 还是有坑的,因为strcpy的
阅读全文
摘要:这次实现了堆,这个堆不是指系统堆栈的堆,是一种数据结构,见下图 堆的本质就是一个数组(上图中,红色的是值,黑色的是下标)简单的来说就是把一个数组看成是二叉树,就像上图 大堆和小堆分别是指根节点比孩子节点的值大或者是小,看了上图之后就可以发现,父亲节点和孩子节点之间下表的关系,parnet=(chil
阅读全文
摘要:二叉树的三种遍历方式一直都是为人津津乐道的面试题,考察一个人对递归的理解让他写个三种遍历方式是最简单的考察方式了,那么考察一个人对递归的理解更加深层次的方式就是让他用循环模拟递归(就是把递归代码转换成非递归),一般想要实现这样的东西是需要栈的,或许说使用栈的结构更加贴合函数栈的压入和弹出,更加好理解
阅读全文
摘要:我看到网上有很多人都在说虚继承和虚表的关系,我一直很郁闷,虚继承和虚表没有什么太大的关系,虚表是当有虚函数出现的时候才会有的,光是使用虚继承是不会有虚表的!当然也就不会有虚表指针!!从我后面的截图可以看到使用虚继承对象的内存构造中并没有出现虚表指针!跟虚继承有关的是一个虚基类表(vbptr),这个表
阅读全文
摘要:实在不知道该怎么起标题了,类似遍历一个文件夹然后获得该文件夹下的文件列表,可以随意切换文件目录,是个不是特别大的东西,本来是用在我们小组写的简易ftp服务器上的一个给客户端显示的一个小插件一样的东西?总之单拿出来应该没啥含量,调用了windows的一些API 头文件包的有些多了,有的没用,是之前自己
阅读全文
摘要:本来用之前也过的堆直接实现比较好,这里我直接重新写一了函数融入进去了 注释部分的代码,是用来进行哈夫曼编码的,这种编码方式就不需要使用三叉链的树了(带有parent指针的三叉树)
阅读全文
摘要:常考的函数有下面三个,memset,memcpy,memmove,一定要记住三个函数的函数原型,熟记返回值类型和参数类型,当然也不能忘记参数检查 memset 一定要先把void*的指针强制转化成char *再进行操作,不然拿void*是没办法的 memcpy memcpy是没有考虑内存覆盖问题的,
阅读全文
摘要:这次贴上二叉搜索树的实现,搜索插入删除我都实现了递归和非递归两种版本(递归函数后面有_R标识) 二叉搜索树的性质: 每个节点都有一个作为搜索依据的关键码(key),所有节点的关键码互不相同。 左子树上所有节点的关键码(key)都小于根节点的关键码(key)。 右子树上所有节点的关键码(key)都大于
阅读全文
摘要:今天就可以把STL库中迭代器的实现,和类型萃取好好整理一下了 迭代器的设计思维是STL的关键所在,在STL的实际运用和泛型思维,迭代器都扮演着十分重要的角色,STL力求把数据容器和算法的概念分开来,于是就有了STL的两大部分,容器(container)和泛型算法(algorithms),泛型算法有很
阅读全文
摘要:所谓的基数排序原理就和哈希表极像,适合使用在待排序的数都处在一个比较小的范围内,开辟好一定的辅助空间,按照直接定址法,将辅助空间对应的位置的计数增加,最后排序的时候只要把之前建好的辅助数组遍历输出一遍就好了 基数排序又被称为桶排序,这里的代码例子是完成一个几位数的排序,可以看成先根据个位的数大小进行
阅读全文
摘要:今天集中把几种排序的方法列一下,当然最出名的希尔,快排,归并和其优化当然也是满载 说到希尔排序的话,不得不先提到的就是插入排序了,希尔排序就是对直接插入排序的一种优化,下面就是直接插入排序的思想 直接插入排序 这就是直接插入排序的代码,思想很简单,代码也很简单 为什么希尔排序比直接插入排序更加优化呢
阅读全文