Tag
Rust 智能指针完整详解 目录 基础概念 主要智能指针分类 Deref 自动解引用 Drop 析构 trait 智能指针选型对照表 关键使用规则 高频易错点 速记口诀 一、基础概念 . 普通裸指针 *const T / *mut T 无所有权、无自动内存管理、无借用检查。仅存内存地址,操作必须 unsafe 。 . 智能指针本质 实现了 Deref + Drop trait 的结构体
查看更多 2026-08-15
一、这段代码在解决什么问题 先别急着看代码,先搞清楚它要回答的那个问题。假设你手里有两串字符,短的那串叫 s 长的那串叫 t 。从现在要你回答来看, s 能不能不改变字符顺序、只是“跳过”t 里的一些字符,从而“拼”出来? 用个生活中的例子:s = "abc" t = "ahbgdc" 。我们在 t 里找 a 找到了;接着往后找 b 也找到了;再往后找 c 又找到了。答案是“能”,s 是
查看更多 2026-08-14
智能指针在 C 内存管理中的实战教程 在 C++ 里手动管理内存是一件既繁琐又易出错的事。内存泄漏、双重释放、悬空指针 常常成为开发者头疼的痛点。不过,幸运的是C++11 引入了三种智能指针:unique_ptr 。shared_ptr ,和 weak_ptr 它们可以帮助你把这些痛点化解为几乎零的概率。 unique_ptr vs shared_ptr vs weak_ptr 三句话说清 类型
查看更多 2026-08-13
数组名的理解 常见疑惑:为什么 sizeof 在主函数里返回的是整个数组大小,而在函数内部却只得到首元素大小? 至于答案在于,数组名是“首元素地址”的别名。而 &arr 则是“整个数组地址”的别名。 int main{ int arr = {1。2,3,4,5},printf;// 指向整个数组 printf;// 指向第一个元素 return 0;} 如果我们把 &arr 看作一个指针
查看更多 2026-08-07
大家好,我是程序员牛奶,这篇文章讲解的内容是双指针技巧的相关习题。读完这篇文章可以去解决以下题目: 网站 题目 难度 LeetCode Remove Duplicates from Sorted Array 26. 删除有序数组中的重复项🟢 Easy LeetCode Remove Duplicates from Sorted List 83. 删除排序链表中的重复元素🟢 Easy
查看更多 2026-08-06
RAII 是啥玩意儿,咱先说清楚 先别急,RAII 听起来高大上。 其实它就是资源获取即初始化。 资源在对象构造时抢到手,析构时立马还回去。 你想想,栈上的东西走到作用域尽头必然调用析构, 这招就Neng保证资源不漏。 哈哈,这玩意儿在 C++ 里叫Zuo“资源管理的铁律”。 把 RAII 扔进智Neng指针里才是王道 咱们平时写代码,总爱手动 new / delete, 结果一不小心就泄漏
查看更多 2026-06-16
如何用双指针算法轻松应对面试? 嘿,朋友!Zui近准备面试?别慌,咱今天就聊聊双指针算法这块儿。这玩意儿,面试官特别喜欢问,但其实掌握了套路,敲好! 咱先说说为什么这么说呢?因为双指针法,它Neng把一些原本需要“暴力破解”的题目,优化到效率geng高的水平。就像你搬东西,不用一个人吭哧吭哧地搬,找个搭把手一起,效率自然高啦! 一、双指针的分类 别以为双指针就一个样子。它可分三种:快慢、对撞
查看更多 2026-06-14
聊聊 Rust 为什么不玩空指针 先说个实话,咱们写代码Zui怕的就是那莫名其妙的崩溃。 尤其是空指针,像一根隐形的炸弹,随时可Neng把你整个人给炸掉。 所以啊,Rust 干脆把这玩意儿给干掉了。 哈哈,这事儿听起来有点夸张,但真的是这么干的。 OptionRust 的“安全保险箱” 所以 Rust 用 Option 替代了 null,把问题从运行时可Neng的崩溃
查看更多 2026-06-13
这篇技术文章深入探讨了 Rust 如何通过类型系统和语言设计来减少空指针问题,并与 Kotlin、Swift 等其他语言进行了比较。文章结构清晰,用短句和语气词穿插,营造了一种随性、自然的对话氛围,避免了过于正式的结构和语言模式。 优点: 易于阅读: 短句、口语化表达、随机插入语气词等元素使文章geng具亲和力,读者geng容易理解。 逻辑清晰: 虽然内容跳跃性较强,但整体思路清晰,从
查看更多 2026-06-13
嘿,老友们,今天聊聊前端空指针这件事儿。你别以为这是后端的专属口味,其实我们在浏览器里也经常碰到这种“我家变量突然变成 null”问题。 空指针到底是怎么回事? 说实话,空指针就像你去超市买牛奶,却发现货架上全是空瓶子。 代码里你访问一个 null 或 举个例子: function getName { return user.name; } getName; // Uncaught
查看更多 2026-06-05
Demand feedback