- 博客(10)
- 收藏
- 关注
原创 lambda表达式
本文介绍了 C++ 中的 lambda 表达式,它是一种简洁定义匿名函数的方式。文中指出,应避免使用默认捕获模式(如 [&] 和 [=]),因为可能导致悬垂引用等问题。推荐使用 初始化捕获,它更安全、支持移动语义,并能提升代码可读性。相比之下,std::bind() 在表达力和安全性上不如 lambda,只有在特定情况下才推荐使用。
2025-04-15 17:34:40
150
原创 C++智能指针
本文介绍了C++中的智能指针(unique_ptr、shared_ptr 和 weak_ptr),并将其与 Java 的垃圾回收机制进行对比。智能指针强调程序员手动管理资源的所有权,控制更灵活;而 Java 的垃圾回收由 JVM 自动控制,更加简单但不可预测。unique_ptr 是独占资源的指针,不能复制,适合用作工厂函数的返回值。shared_ptr 允许多个指针共享资源,通过引用计数来管理内存。weak_ptr 不拥有资源,只是用来观察 shared_ptr 管理的对象,适合用于缓存或防止循环
2025-04-03 17:26:18
611
1
原创 动态规划总结
当dp数组的下标全部表示背包大小时,只能使用倒序。dp数组的值根据本行算出来的,如果在计算第j列前,j-nums[i]列已经更新过,那么再算第j列会导致重复添加物品。所以使用倒序是确保第j-nums[i]列是统计第i个物品前的结果。当dp数组的下标i表示物品,j表示背包大小时使用正序或倒序皆可。第i行dp数组的值是根据i-1行算出来的,第i行数据互不影响。所以dp二维数组改一维数组本质上是将dp二维数组的每一行的结果更新到第一行上。关于dp数组的遍历顺序问题分为两种。
2025-02-04 12:32:16
122
原创 缓存系统项目总结
牺牲一部分内存换取更快的读写速度是缓存的基本思想。尤其是在高并发场景下合理的缓存机制能更有效的实现资源的读取。而淘汰策略的选择则决定了在缓存区满时删除哪些数据。
2025-01-25 17:33:23
761
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人