C++11的shared_ptr有可能导致函数调用栈溢出

最开始关注这个问题是在测试C++ Concurrency in Action这本书提及的几个版本stack数据结构的实现,其中lock free版本的实现时,需要精巧的内存回收机制,其中在介绍count reference内存回收机制时,作者认为shared_ptr是有reference coun...

2018-09-25 17:58:05

阅读数 58

评论数 0

C++ 标准关于“carries a dependency"的定义

http://open-std.org/JTC1/SC22/WG21/docs/papers/2011/n3242.pdf 是c++11的标准文档的路径。1.10.9其中描述了关于“carries a dependency"的定义,其中的关键字“left operand”一定要理...

2018-04-17 11:54:34

阅读数 33

评论数 0

最坏情况下保证时间复杂度为N*logN的快速排序

快速排序的平均时间复杂度是N*logN,同时其也是实践已知的最快的通用排序算法,但是其最坏情况的时间复杂度依然是N的平方,但是只要我们对快速排序算法稍作修改,就可以保证其最坏情况的时间复杂度也是N*logN。 思路就是在递归达到一定深度后,将快速排序的递归调用改为堆排序,下面是我实现的代码

2017-07-03 23:34:29

阅读数 494

评论数 0

整数的线性排序算法-基数排序

基数排序对被排序的类型有很强的要求,如对整数的排序,就是在我们知道整数在内存中的表示方法的前提下,才得以实现。当然其对被排序类型要求严格,带来的回报就是时间复杂度达到了线性。下面是我实现的基数排序,实现了算法本身,测试方法,时间统计等代码逻辑

2017-07-03 22:19:16

阅读数 136

评论数 0

C++ nontrival class 值传递的机制。

研究C++已经有一段时间了,我那时扔掉了手头的中文版c++ primer,开始阅读英文版,用时一年半多才勉强开完一遍,增加了一千一百多个注释,如果确认没有版权问题,我会把它共享。再给gcc提bug时,通过邮件交流得知C++标准化工作组的网站,http://open-std.org/JTC1/SC2...

2015-09-08 22:13:31

阅读数 337

评论数 0

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