摘要: 由于某些原因不方便在头文件中直接引入另一个模板类的头文件,但声明变量是需要用到该模板类型,这时候就要用到模板类的前置声明了; 声明方式如下: namespace xx { template<typename T> class CBar; } 使用方式: xx::CBar<int> bar_; 但此时 阅读全文
posted @ 2019-12-09 16:41 郭流水 阅读(2104) 评论(0) 推荐(0) 编辑
摘要: 每次申请一个新的开发机(docker)都要手动配置一遍git别名,所以写了一个脚本文件git_alias_config.sh,以后直接运行此脚本,为防止以后用的时候再写,记录于此 阅读全文
posted @ 2019-06-06 15:39 郭流水 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 运行结果如下: 下面文字描述下进程运行的各个阶段及相应状态的内存情况 阶段 内存大小 before vector: 1232 fill vector done 32648 clear done 32648 swap done 1400 结论: clear清空元素但不会释放内存;如果想要释放内存可以考 阅读全文
posted @ 2019-01-22 11:17 郭流水 阅读(1389) 评论(0) 推荐(0) 编辑
摘要: 直接上代码 运行结果如下: 阅读全文
posted @ 2018-12-28 16:56 郭流水 阅读(1319) 评论(0) 推荐(0) 编辑
摘要: 1,首先从内存中申请一块大内存chunk(默认为4M); 2,需要有一个角色来管理申请的多个chunk,这时候arena出场了,它用来管理多个chunk; 3,将内存对象分为三个等级 small <4k; large [4k,4M); huge >=4M; 4,为了内存对齐,在small中,将此区间 阅读全文
posted @ 2018-11-12 17:49 郭流水 阅读(5290) 评论(0) 推荐(0) 编辑
摘要: C11中有左值引用和右值引用 左值引用 对一个变量的别名,不会调用拷贝构造,对别名的操作影响原值 eg: 运行结果: 右值引用 对匿名变量的引用,提出右值引用的原因:充分利用在函数调用过程中产生的临时变量,对这个临时变量达到最大限度的使用率 常用的匿名变量(对象): fun(A a()); //此时 阅读全文
posted @ 2018-11-09 18:53 郭流水 阅读(1839) 评论(1) 推荐(1) 编辑
摘要: boost::log包含两个大部分:logger和sink logging::core是全局的一个单例 1,sink 在boost::log中有一个默认的sink与控制台流相关关联; 如果想把日志输出到指定的文件流中可以使用如下代码: auto sink=add_log_file("xxx.log" 阅读全文
posted @ 2018-10-31 18:01 郭流水 阅读(1888) 评论(0) 推荐(0) 编辑
摘要: 1,在windows上安装git,先去官网上下载Git-2.18.0-64-bit.exe 2,然后默认安装即可,使用gitbash 3,安装完成后,打开终端如图所示: 4,先进行初始化配置 使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名。 $ git con 阅读全文
posted @ 2018-10-30 12:10 郭流水 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 1,调试带参app gdb --args ./app arg1 arg2 ... 2,打印vector 1) 打印整个vector (gdb) print *(myVector._M_impl._M_start)@myVector.size() 2) 打印前N个成员 (注意是前n个不是第n个) pr 阅读全文
posted @ 2018-10-30 12:08 郭流水 阅读(160) 评论(0) 推荐(0) 编辑
摘要: ctrl + <- 光标向前移动一个单词 ctrl + -> 光标向后移动一个单词 Ctrl + l 清屏 (注意是小写的L) Ctrl + a 光标移到行首 Ctrl + e 光标移到行尾 Ctrl + u 剪切光标前字符到行首 Ctrl + k 剪切光标及光标后字符到行尾 Ctrl+y 粘贴 阅读全文
posted @ 2018-09-20 14:31 郭流水 阅读(173) 评论(0) 推荐(0) 编辑