cpp
DJ丶丶
https://github.com/pengjiawei
展开
-
sofa-pbrpc 和 protobuf 组合使用
根据 sofa-pbrpc 的文档,实现了整合使用,下面是项目地址 c++ 客户端和服务端 https://github.com/pengjiawei/protobuf_sofa_rpc_demo java 客户端请求 https://github.com/pengjiawei/protobuf_sofa_rpc_demo我把这个完全过了一遍,觉得主要注意的有几个地方如果不想用...原创 2018-04-14 16:35:48 · 818 阅读 · 0 评论 -
C语言malloc和指针传递陷阱
最近写二叉树的基本操作的时候发现了这个问题,所以写了个简单的例子,做个笔记 下列初始化数组过程#include <iostream>void init_array(int* arr,int size){ arr = (int*)malloc(sizeof(int) * size); for (int i = 0; i < size; ++i) { ...原创 2018-04-18 13:20:50 · 1945 阅读 · 0 评论 -
c++和数据结构基础
记录平时不怎么注意的基础概念,陆陆续续会记笔记1.堆和树 如果一棵二叉树的每一个节点都带着一个值,且父亲的值总是比儿子的值要大,我们称这棵树为大顶二叉堆,如果是父亲比儿子都要小,那就是小顶二叉堆,统称为二叉堆。(其实一般都把二叉两个字省略掉,毕竟通常说的堆都是二叉堆,然而堆不止二叉堆)。这一个良好的性质注定了堆可以用来当作优先队列使用。堆是特殊的树,注意与二叉排序树(左子树的节点值一...原创 2018-04-24 14:45:06 · 1224 阅读 · 0 评论 -
右值引用和移动语义
什么是右值什么是左值,已经很多类似的文章介绍了。我这里直接说重点,为什么我们需要转移语义class Foo{public: Foo():a(0){ } Foo(int a_):a(a_){ printf("constructor\n"); } Foo(const Foo&amp; rhs){ printf("con...原创 2018-05-14 16:13:17 · 197 阅读 · 0 评论 -
typename的双重定义
如果问上图中的class和typename有什么不同,答案就是这两者在这种情况是没有什么不同的下面我们考虑上图中这种情况,C中有一个叫const_iterator的东西,如果我们现在不知道C的类型,那么const_iterator可能只是命名空间C里面的一个变量名而已,所以typename关键词就是来对这种情况进行限定的,typename指涉一个嵌套从属类型名称...原创 2018-05-08 12:02:28 · 290 阅读 · 0 评论