09 2022 档案

C++ 智能指针实现
摘要:C++ 智能指针实现 C++ 使用智能指针管理资源。C++11 有shared_ptr, weak_ptr, unique_ptr 三种智能指针。unique_ptr 实现比较简单,注意避免拷贝和赋值,要使用移动构造函数进行对象所有权的转移。这里只介绍shared_ptr, weak_ptr 的实现 阅读全文

posted @ 2022-09-21 17:11 LambdaQ 阅读(382) 评论(0) 推荐(0) 编辑

堆排序以及 TopN 问题
摘要:堆排序 堆排序其实是选择排序的优化变种,选择排序是把最大或最小的元素放到最边上,然后不断重复以上过程。 堆排序也是如此,只不过堆排序通过构建数据结构,让查找最大或最小元素并放到最边上的速度比选择排序快得多。 以数组表示完全二叉树 对于一个完全二叉树,我们可以使用数组来进行存储。 使用数组来存储完全二 阅读全文

posted @ 2022-09-15 23:15 LambdaQ 阅读(316) 评论(0) 推荐(0) 编辑

位运算技巧
摘要:位运算技巧 使用位运算交换两个数值 void swap(int* a, int* b) { *a ^= *b; *b ^= *a; *a ^= *b; } 奇偶校验码 // 有奇数个1返回1,有偶数个1返回0。 int check_bit(int n) { n ^= n >> 1; n ^= n > 阅读全文

posted @ 2022-09-11 15:45 LambdaQ 阅读(28) 评论(0) 推荐(0) 编辑

单例以及模板类的静态成员变量的生命周期
摘要:我们有如下的单例设计模式的实现: template <typename T> class OnceSingle { public: OnceSingle() = delete; OnceSingle& operator=(const OnceSingle<T>& m) = delete; ~Once 阅读全文

posted @ 2022-09-07 22:52 LambdaQ 阅读(181) 评论(0) 推荐(0) 编辑

使用位运算求平均值
摘要:使用位运算求平均值 求 a,b 的平均值 令 common_binary 为 a, b 二进制表示的 a&b 结果。 所以有: a = common_binary + diff_binary_a b = common_binary + diff_binary_b (a + b) / 2 = comm 阅读全文

posted @ 2022-09-06 23:26 LambdaQ 阅读(38) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示