- 博客(3)
- 收藏
- 关注
原创 从浅到深聊 C++ 中的智能指针:告别手动内存管理的烦恼
C++11 提供了 std::make_shared ,C++14 提供了 std::make_unique ,它们能更安全地创建智能指针,避免内存泄漏(比如在裸指针创建和智能指针构造之间发生异常的情况)。std::cout << "引用计数:" << sptr1.use_count() << std::endl;std::cout << "引用计数:" << sptr1.use_count() << std::endl;~A() { std::cout << "A 析构" << std::endl;
2025-12-23 21:03:00
376
原创 算法题--爬楼梯
从结果倒推:要爬到第 n 阶,最后一步只有两种可能:(1)从第 n-1 阶爬 1 个台阶上来;(2)从第 n-2 阶爬 2 个台阶上来。- 当 n=2 时,有 2 种方法(1+1 或 2),所以 dp[2] = 2。- 当 n=1 时,只有 1 种方法(爬 1 阶),所以 dp[1] = 1;- 输入: n = 3 ,输出: 3 (1+1+1;递推公式: dp[n] = dp[n-1] + dp[n-2]- 输入: n = 2 ,输出: 2 (1+1;
2025-10-31 22:14:28
303
原创 c++实现选择排序
优点:逻辑简单,代码好写;交换次数少(最多 n-1 次),如果数据“交换成本高”(比如数据很大),比冒泡排序好。- 缺点:效率低,时间复杂度是 O(n²) (双层循环),数据量大时不适用(比如排序10万个数字,会很慢)。1. 初始状态:整个数组分为已排序部分(空)和未排序部分(整个数组)3. 从剩余未排序元素中继续寻找最小元素,放到已排序序列的末尾。2. 在未排序序列中找到最小元素,存放到排序序列的起始位置。4. 重复第二步,直到所有元素均排序完毕。
2025-10-15 20:22:52
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅