自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yinjun66的博客

努力学习

  • 博客(18)
  • 收藏
  • 关注

原创 Linux上搭建百度brpc框架

由于平常用的rpc都是用thrift,百度开源brpc后想知道两者的差异是什么,所以就急切的从github上下载研究研究,发现文档写的是真的好~~当然还有里面的例子。研究了几天后,想搭好环境实现一波,搭好之后想把过程遇到的坑分享出来~ 随便说下,我的是centos7的版本,ubutun也差不多。 一、brpc依赖三个开源库:是gflags,protobuf和leveldb。gflags是用于

2017-11-12 15:28:24 10005 2

原创 《深入探索C++对象模型》读后总结

第一章:关于对象 1:C++每个类对象的内存大小由:类中非静态成员内存的和,指向虚函数表的指针和内存对齐的内存三者共同决定。 内存如何对齐,我以前写过一篇博文里讲的很详细。 2:虚函数表里存放的是虚函数的内存地址,对象调用虚函数就是通过虚函数表找到它的地址从而调用它,这也是多态的实现原理。 3:struct和class除了默认的权限不同外,其它基本一样;在只使用数据成员时用struct 第

2017-05-06 16:34:38 534

原创 系统调用fork()函数

fork()的原型:pid_t fork( void); (pid_t 是一个宏定义,其实质是int 被定义在#include

2017-05-06 11:24:55 566

原创 用C++的STL部分实现Python中的list(列表)

本来准备来实现一个简单的python的shell交互器,现在只完成了python中几个数据结构的实现,目前正在啃编译原理,等编译原理啃完了再继续回来实现pytyon的shell。 写的有点乱哈~~ Github有详细的代码:这里写链接内容 实现的思想: Python中的列表是个神奇的数据结构,也是Python中最学用的一个数据结构(个人认为),它能存放各个类型的数据,lst1=[1,2,2.

2017-04-28 11:10:22 2404 3

原创 C++内存存储区域:堆区栈区以及new delete

C/C++内存大概有: 1:栈区,它是有系统自动分配和释放,速度快效率高,但不自由;局部变量,函数参数,返回值等都存储在这个区域。 2:堆区,它是由程序员能过new或malloc自己分配的,不过在不需要的时候也需要自己通过delete和free释放内存。很灵活。 3:全局或静态存储区域:存放全局或静态变量。其中初始化的变量放在一块区域,未初始化的放在另一块区域。 4:常量区域:存放常量的

2017-04-28 10:06:21 793

原创 代码整洁之道学习笔记—第三章

1:函数不要有太多行!以前感觉函数行数越多越酷,可是过了一段时间重新看代码和修改时行数多的函数看起来很累 2:代码中不要拥有太多的嵌套和缩进,如果多了把嵌套和缩进写在函数里 3:一个函数尽量只做一件事,这样在以后的修改时不会产生预想不到的错误。 4:函数的命名很重要,好的函数命名能让你在看代码时不需要F12去看定义,直接通过名称了解函数的功能 5:函数的参数越少越好,最起码能让你在测试时少用

2017-04-18 20:12:58 323

原创 代码整洁之道学习笔记—第二章

1:不要随意命名!根据语义和功能来命名!尽量做到根据名称就能判断函数或变量的功能。比如:int elaspedTimeInDays比int d好很多,连注释都可以省了。 2:命名时不要怕名称太长,长而具有描述性的名称比乱取的名称要好很多。 3:把用到的数字用const定义,不仅后面方便修改,而且也容易找到。毕竟const int MAXNUM=5;比5好找多了 4:命名时不要用些误导的词,有时

2017-04-18 20:05:33 369

原创 C++类的内存对齐-C++alignment

在C++中的某一个类的内存大小是由以下三部分组成:1:nonstatic data member的总和大小2:alignment所填补的空间,可能存在于members之间,也可能是类的边界3:为了支持virtual而由内部产生的额外负担,比如:指虚基类表的指针或指向虚函数表的指针其中1和3都比较好确定,比较难确定的是2中的内存对齐(填补)的大小以下的分析都是Visual Std

2017-04-08 11:19:22 4556

原创 多态实现原理-虚函数表内存分析及虚基类表的内存分析

看了深入探索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 775

原创 VS2017配置opencv遇到的64位跟32位不兼容问题

遇到问题:我电脑是64位的,装好opencv库后,环境变量和头文件目录,库目录都配置好了,也在附加依赖项里添加了所使用的库但运行时提示:原因:因为新建的项目都是32位的,如下图而且在解决方案里,注意是解决方案里,如下图也都是32位的,而且项目属性 也是32位的所以会提示64位的库与32位的不兼容解决方法:1:把解决方案里的配置属性-平台改为64位

2017-03-12 09:19:36 6891 1

原创 ubuntu中个性化配置vim方法

1:在/home/用户名下新一个文件在终端里输入:vi ~/.vimrc(vimrc是vim的配置文件,每次打开vim时会自动加载这个文件里的配置)2:配置的代码如下:直接就可以复制到里面然后保存就行set ai                          " 自动缩进,新行与前面的行保持—致的自动空格set aw                        "

2017-03-09 14:25:11 2090

原创 调用以及调试自己创建的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 447

原创 Winpcap学习总结(三)

1:int pcap_loop(pcap_t * p,  int cnt,  pcap_handler callback,  u_char * user  )功能:这个函数十分有用,经常用这个函数来访

2017-02-26 14:40:36 637

原创 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 639

原创 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 2297

原创 最大子数组问题的递归和非递归(线性时间)代码

//**********最大子数组问题************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 668

原创 算法导论-最长回文子序列

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 397

原创 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 2737 2

空空如也

空空如也

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

TA关注的人

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