会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
ZHOU YANG
博客园
首页
新随笔
管理
2017年6月3日
Mordern Effective C++ --auto
摘要: 5. 优先使用auto而非显示类型声明 在C++之中,使用auto关键字声明类型可以将程序员从输入繁琐的类型中解放出来,编译器会自动推导出变量的实际类型。 使用auto关键字 在C++14中,lambda函数的参数都可以使用auto来定义。 在C++中, 的key的类型是const类型的,所以即便采
阅读全文
posted @ 2017-06-03 19:44 ZHOU YANG
阅读(353)
评论(0)
推荐(1)
2017年6月2日
modern effective C++ -- Deducint Types
摘要: 1. 理解模板类型推导 1. expr是 函数调用时,推导出的Param和T的类型如下: 需要特别注明的是,通过 的方式传入数组,数组的大小信息不会丢失。 在类型推导期间,数组和函数将退化为指针类型,除非他们是被初始化为引用。 2. expr是 在进行类型推导的时候,rx的引用性被忽略了。 3. p
阅读全文
posted @ 2017-06-02 21:37 ZHOU YANG
阅读(257)
评论(0)
推荐(0)
2017年5月30日
基于锁的并发数据结构
摘要: 1. 使用细粒度锁和条件变量的线程安全队列 可以使用细粒度的锁来减小队列的临界区,这里使用了一个dummy node用来进一步减小锁的临界区。若要判断队列是否为空,只需要执行下述判断: 请注意,因为在进行push的时候需要修改tail,所以对tail的访问和修改都需要进行加锁。这里使用get_tai
阅读全文
posted @ 2017-05-30 21:32 ZHOU YANG
阅读(1376)
评论(0)
推荐(0)
2017年5月29日
C++ 内存模型
摘要: C++ 原子类型 原子操作:一个不可分割的操作。 标准原子类型可以在头文件之中找到,在这种类型上的所有操作都是原子的。它们都有一个 的成员函数,让用户决定在给定类型上的操作是否用原子指令完成。唯一不提供 成员函数的类型是 ,在此类型上的操作要求是无锁的。可以利用 实现一个简单的锁。 C++ 11中的
阅读全文
posted @ 2017-05-29 00:56 ZHOU YANG
阅读(4095)
评论(0)
推荐(2)
2017年3月25日
zlib 简单封装
摘要: 下列代码用于压缩和解压字符串,使用标准库string。实现了对zlib的简单封装。
阅读全文
posted @ 2017-03-25 15:24 ZHOU YANG
阅读(1090)
评论(0)
推荐(0)
2016年12月2日
assert 实现分析
摘要: 一直以来,对于assert的实现总是不太理解,现在深入assert背后的代码,总算对assert的实现有了一个清醒的认识。 assert基于宏定义与宏展开实现。首先介绍一下assert的功能:它能够断言给定表达式是否为true。如果为true,则对应assert的代码会转换为 ,即一条空语句,ass
阅读全文
posted @ 2016-12-02 01:17 ZHOU YANG
阅读(1605)
评论(0)
推荐(0)
2016年11月28日
Valgrind 快速入门
摘要: 1. 介绍 Valgrind工具组提供了一套调试与分析错误的工具包,能够帮助你的程序工作的更加准确,更加快速。这些工具之中最有名的是 Memcheck 。它能够识别很多C或者C++程序中内存相关的错误,这些错误会导致程序崩溃或者出现不可预知的行为。 接下来会以最短的篇幅告诉你如何使用 Memchec
阅读全文
posted @ 2016-11-28 17:08 ZHOU YANG
阅读(4281)
评论(0)
推荐(0)
2016年11月22日
kmp算法理解与记录
摘要: 字符串匹配的暴力解法 给定字符串s和p,寻找字符串p在字符串s中出现的位置,暴力解法如下所示: 如果当前字符匹配成功, ,继续匹配下一字符。 如果 与 匹配失败,令 ,即i转到上次首次匹配开头字符的下一位置,j从头开始。 k=len[k 1] k f e abeab e f str str str_
阅读全文
posted @ 2016-11-22 19:23 ZHOU YANG
阅读(552)
评论(0)
推荐(0)
2016年11月5日
make 要点简记
摘要: make 要点简记 1.隐式推导 make可以自动推导文件及其文件依赖关系后面的命令,所以我们没有必要在每一个 .o 文件后面都写上类似的命令,因为make 会自动识别并且自动推导命令. 2.在规则中使用通配符 表示将object变量定义为所有.o文件组成的集合。在定义变量的时候,不能使用通配符,否
阅读全文
posted @ 2016-11-05 22:08 ZHOU YANG
阅读(495)
评论(0)
推荐(0)
2016年10月30日
为什么建立TCP连接需要三次握手,为什么断开TCP连接需要四次握手,TIME_WAIT状态的意义
摘要: 为什么建立TCP连接需要三次握手? 原因:为了应对网络中存在的延迟的重复数组的问题 例子: 假设client发起连接的连接请求报文段在网络中没有丢失,而是在某个网络节点长时间滞留了,导致延迟到达server。本来这是一个已经失效的连接报文,但是server接收到这个连接报文之后,误认为client发
阅读全文
posted @ 2016-10-30 00:15 ZHOU YANG
阅读(7405)
评论(1)
推荐(0)
下一页
公告