- 博客(18)
- 收藏
- 关注
原创 Linux上搭建百度brpc框架
由于平常用的rpc都是用thrift,百度开源brpc后想知道两者的差异是什么,所以就急切的从github上下载研究研究,发现文档写的是真的好~~当然还有里面的例子。研究了几天后,想搭好环境实现一波,搭好之后想把过程遇到的坑分享出来~ 随便说下,我的是centos7的版本,ubutun也差不多。 一、brpc依赖三个开源库:是gflags,protobuf和leveldb。gflags是用于
2017-11-12 15:28:24 10146 2
原创 《深入探索C++对象模型》读后总结
第一章:关于对象 1:C++每个类对象的内存大小由:类中非静态成员内存的和,指向虚函数表的指针和内存对齐的内存三者共同决定。 内存如何对齐,我以前写过一篇博文里讲的很详细。 2:虚函数表里存放的是虚函数的内存地址,对象调用虚函数就是通过虚函数表找到它的地址从而调用它,这也是多态的实现原理。 3:struct和class除了默认的权限不同外,其它基本一样;在只使用数据成员时用struct 第
2017-05-06 16:34:38 554
原创 系统调用fork()函数
fork()的原型:pid_t fork( void); (pid_t 是一个宏定义,其实质是int 被定义在#include
2017-05-06 11:24:55 593
原创 用C++的STL部分实现Python中的list(列表)
本来准备来实现一个简单的python的shell交互器,现在只完成了python中几个数据结构的实现,目前正在啃编译原理,等编译原理啃完了再继续回来实现pytyon的shell。 写的有点乱哈~~ Github有详细的代码:这里写链接内容 实现的思想: Python中的列表是个神奇的数据结构,也是Python中最学用的一个数据结构(个人认为),它能存放各个类型的数据,lst1=[1,2,2.
2017-04-28 11:10:22 2502 3
原创 C++内存存储区域:堆区栈区以及new delete
C/C++内存大概有: 1:栈区,它是有系统自动分配和释放,速度快效率高,但不自由;局部变量,函数参数,返回值等都存储在这个区域。 2:堆区,它是由程序员能过new或malloc自己分配的,不过在不需要的时候也需要自己通过delete和free释放内存。很灵活。 3:全局或静态存储区域:存放全局或静态变量。其中初始化的变量放在一块区域,未初始化的放在另一块区域。 4:常量区域:存放常量的
2017-04-28 10:06:21 833
原创 代码整洁之道学习笔记—第三章
1:函数不要有太多行!以前感觉函数行数越多越酷,可是过了一段时间重新看代码和修改时行数多的函数看起来很累 2:代码中不要拥有太多的嵌套和缩进,如果多了把嵌套和缩进写在函数里 3:一个函数尽量只做一件事,这样在以后的修改时不会产生预想不到的错误。 4:函数的命名很重要,好的函数命名能让你在看代码时不需要F12去看定义,直接通过名称了解函数的功能 5:函数的参数越少越好,最起码能让你在测试时少用
2017-04-18 20:12:58 362
原创 代码整洁之道学习笔记—第二章
1:不要随意命名!根据语义和功能来命名!尽量做到根据名称就能判断函数或变量的功能。比如:int elaspedTimeInDays比int d好很多,连注释都可以省了。 2:命名时不要怕名称太长,长而具有描述性的名称比乱取的名称要好很多。 3:把用到的数字用const定义,不仅后面方便修改,而且也容易找到。毕竟const int MAXNUM=5;比5好找多了 4:命名时不要用些误导的词,有时
2017-04-18 20:05:33 396
原创 C++类的内存对齐-C++alignment
在C++中的某一个类的内存大小是由以下三部分组成:1:nonstatic data member的总和大小2:alignment所填补的空间,可能存在于members之间,也可能是类的边界3:为了支持virtual而由内部产生的额外负担,比如:指虚基类表的指针或指向虚函数表的指针其中1和3都比较好确定,比较难确定的是2中的内存对齐(填补)的大小以下的分析都是Visual Std
2017-04-08 11:19:22 4786
原创 多态实现原理-虚函数表内存分析及虚基类表的内存分析
看了深入探索C++对象模型后的一些感悟1:虚函数表内存分析每一个类对象的内存由nostatic data member和指向虚数表的指针之和决定。class A{private:int a;virtual void fun1();virtual void fun2();};calss B: public A{void fun2();virtual voi
2017-03-31 11:50:28 800
原创 VS2017配置opencv遇到的64位跟32位不兼容问题
遇到问题:我电脑是64位的,装好opencv库后,环境变量和头文件目录,库目录都配置好了,也在附加依赖项里添加了所使用的库但运行时提示:原因:因为新建的项目都是32位的,如下图而且在解决方案里,注意是解决方案里,如下图也都是32位的,而且项目属性 也是32位的所以会提示64位的库与32位的不兼容解决方法:1:把解决方案里的配置属性-平台改为64位
2017-03-12 09:19:36 7006 1
原创 ubuntu中个性化配置vim方法
1:在/home/用户名下新一个文件在终端里输入:vi ~/.vimrc(vimrc是vim的配置文件,每次打开vim时会自动加载这个文件里的配置)2:配置的代码如下:直接就可以复制到里面然后保存就行set ai " 自动缩进,新行与前面的行保持—致的自动空格set aw "
2017-03-09 14:25:11 2141
原创 调用以及调试自己创建的dll文件
1:使用自己编的dll动态库的最终方法:以text项目为例a:把dll项目里的.h和.dll和.lib文件放在text/text文件里b:在text的源程序添加上面说的lib库,即用#pragma comment();做到上面两步便可以在text项目里使用自己创建的dll库了2:1中的是可以使用dll动态库,但不能调试,调试只要把dll动态库放到text/Debug文件里便
2017-03-03 09:11:17 471
原创 Winpcap学习总结(三)
1:int pcap_loop(pcap_t * p, int cnt, pcap_handler callback, u_char * user )功能:这个函数十分有用,经常用这个函数来访
2017-02-26 14:40:36 669
原创 pcap学习总结(二)
1:pcap_t类一个够柄它的指针通常是打开设备或文件的返回值。被很多函数调用:pcap_loop(pcap_t *,int,packet_handler,u_char*),pcap_next_ex,pcap_dumper_open(pcap_t *,char *);成员变量有很多,不写出来了2:pcap_t *的获得通常是由函数获得,pcap_open_live(),pcap_open_of
2017-02-24 16:16:15 695
原创 pcap学习总结(一)——网卡类型,获得指向网卡的指针,释放网卡
1:pcap_if_t:typedef struct pcap_if pcap_if_t 保存网卡基本信息的类型。通常用指针来使用,pcap_if_t *alldevsstruct pcap_if{struct pcap_if *next;//指向下一个网卡char *name;//网卡的标识符,唯一识别一个网卡char *description;//用来描述网卡struc
2017-02-24 15:27:48 2353
原创 最大子数组问题的递归和非递归(线性时间)代码
//**********最大子数组问题************void CrossingMaxSubArray(const vector&vec,int low,int mid,int high,int &left,int &right,int &max){//求跨越mid的最大子数组和,low是起点,mid是跨越的中心,high是终点,left是要得到最大子数组的起点,right是要得到//最大
2016-12-17 16:52:25 701
原创 算法导论-最长回文子序列
void MaxPalindromeSequence(const string&vec){//动态规划vector>pa(vec.size()+1, vector(vec.size()+1));//用来存放最优解,其中pa[i][j]代表字符串中第i-1个到j-1个子串的最大回文长度string str = "";//用来保存最长回文序列int maxLength = 0;//
2016-12-09 20:52:35 427
原创 next-permutation原理及及运用
next-permutation是STL中的一个模板函数,它的功能是按默认operator1 2 3的全排列如下:1 2 3 , 1 3 2 , 2 1 3 , 2 3 1 , 3 1 2 , 3 2 1一:STL中的next-permutation原型:templatebool next-permutation(BidIt first, BidIt last);//defau
2016-12-09 20:49:25 2807 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人