摘要: 注意riter和iter相差一个身位哦~ 可以参考effective stl 阅读全文
posted @ 2020-11-25 11:38 joeyzzz 阅读(92) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/huxiao-tee/p/4660352.html 阅读全文
posted @ 2020-11-14 19:13 joeyzzz 阅读(125) 评论(0) 推荐(0) 编辑
摘要: TODO 阅读全文
posted @ 2020-11-02 15:37 joeyzzz 阅读(92) 评论(0) 推荐(0) 编辑
摘要: TODO: 阅读全文
posted @ 2020-11-01 17:23 joeyzzz 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 什么是伙伴系统 伙伴系统是一种将资源分配出去,再回收回来的一种方法,典型的使用场景是内存池。 伙伴系统的基本原理 当要实现内存管理时,通常会面对分配粒度的问题。要对内存进行分配,如果固定粒度的话,一定会造成内部碎片,而且根据放置算法的不同,还表现出不同的特点。 伙伴分配器可以实现这样的作用:将内存将 阅读全文
posted @ 2020-10-12 18:02 joeyzzz 阅读(1438) 评论(0) 推荐(0) 编辑
摘要: 使用补码(最高位是负权重)表示带符号数,既可以表示正数也可以表示负数。 表示无符号数就比较简单了,每位都是正权重。 补码的特点 当最高位是0时,相同有符号数和无符号数的位模式是一样的 负的取值范围要比正的多1 补码表示的实际好处 取负数就是所有位取反加一 有符号转无符号如果为正数,就直接转了,如果是 阅读全文
posted @ 2020-09-23 14:51 joeyzzz 阅读(1007) 评论(0) 推荐(0) 编辑
摘要: 在基类的构造函数中调用虚函数 在构造函数中调用虚函数,只会得到无多态的效果,也即调用基类中的那个虚函数的实现,而非派生类中的。直观的想,基类构造时,派生类还没有构造,所以派生类的虚函数中的this指针还没法用,所以就不行啦~ 在基类析构函数中调用虚函数 因为析构函数的执行顺序和析构函数相反,先执行派 阅读全文
posted @ 2020-09-02 21:03 joeyzzz 阅读(637) 评论(0) 推荐(0) 编辑
摘要: 有缓冲和无缓冲channel的声明 下面简要说明它们之间的区别,先声明两个channel分别有缓冲1和无缓冲: c1 := make(chan int) // 无缓冲 c2 := make(chan int, 1) // 有缓冲 无缓冲的channel 下面讨论一个简单的场景:A向channel写入 阅读全文
posted @ 2020-08-25 15:05 joeyzzz 阅读(1376) 评论(0) 推荐(2) 编辑
摘要: 最简单的二分查找 略 找target的左边界,如果没有则返回-1 重点在于nums[mid] == target的时候,收缩右边界 int leftBound(vector<int> &nums, int target) { int left = 0, right = nums.size() - 1 阅读全文
posted @ 2020-08-19 20:48 joeyzzz 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 运行期多态虚函数的缺陷 因为虚函数的调用涉及到运行时查询虚表,所以调用成本会较高。而对于普通的成员函数,一般编译器都会将其内联,据测试,虚函数的动态绑定的开销相较于普通成员函数可以达到10倍左右。 CRTP一般长什么样? template <typename Child> class Base { 阅读全文
posted @ 2020-07-16 18:42 joeyzzz 阅读(857) 评论(0) 推荐(0) 编辑