在前端 JS、后端 Java 等开发中,匿名函数(箭头函数、Lambda、匿名内部类)与闭包是高频使用但易混淆的概念 —— 比如循环绑定事件时索引乱掉、外部变量修改后匿名函数...
在前端 JS、后端 Java 等开发中,匿名函数(箭头函数、Lambda、匿名内部类)与闭包是高频使用但易混淆的概念 —— 比如循环绑定事件时索引乱掉、外部变量修改后匿名函数...
在之前的编译链接博文中,我们提到printf通过 “过程链接表(PLT)” 调用 C 标准库,而实现这一动态关联的核心组件就是动态加载器(Windows 下叫ntdll.dl...
在编程中,我们写完代码后双击运行就能看到结果,但 “代码文本” 到 “可执行程序” 之间到底经历了什么?本文将以一段包含全局变量、静态变量、常量的 C 代码为例,用 GCC ...
QWT6.2.0 之 MinGW 64-bit 编译 一、QWT 概述 QWT(Qt Widgets for Technical Applications)是遵循 LGPL ...
复杂度分析是衡量算法效率的核心指标,它忽略硬件、语言等环境差异,聚焦算法本身的 “执行效率”(时间)与 “资源占用”(空间)随数据规模增长的变化规律。以下分两部分详解分析方法...
每次听到 “动态规划”,是不是总觉得它满是复杂公式,一学就忘?其实它的核心逻辑特别贴近生活 —— 就像我们解决复杂问题时,习惯先拆成小问题,再一步步推进。今天咱们用 3 个生...
1. 写在前面:为什么要掌握这 2 种搜索? 日常开发中,搜索需求分两类:一类是 “从有序列表里找特定值”(比如查 10 万条用户 ID),另一类是 “从关联结构里找路径 /...
1. 写在前面:为什么要掌握这 3 种排序? 日常开发中,从 “给 100 条用户考勤数据按时间排序” 到 “给 1 万条订单按金额排序”,排序是高频需求。而冒泡排序、快速排...
在数据结构的实战应用中,B + 树是数据库索引的 “核心引擎”—— 它通过精巧的内存结构设计,将磁盘 IO 次数降到最低,支撑千万级数据的高效查询。本文将聚焦两大核心:一是拆...
上一篇我们学了二叉搜索树(BST)—— 它靠 “左小右大” 规则实现快速查询,但有个致命漏洞:如果插入有序数据(比如 1→2→3→4→5),会直接退化成链表,查询效率从 O ...
如果你已经懂了二叉树的基础遍历,可能会问:“二叉树除了遍历,还能解决什么实际问题?”—— 答案是 “高效的排序和查询”。比如要从 10 万条用户 ID 中找某条记录,数组遍历...
如果你第一次接触二叉树,可能会觉得 “树状结构” 比数组、链表复杂 —— 但其实它就像你家的 “家族树”:爷爷是根,爸爸和叔叔是爷爷的孩子,你和兄弟姐妹是爸爸的孩子,最晚辈的...
—— 查 10 万条数据里的 “用户 ID=10086”:数组遍历 10 万次,哈希表 1 次就够 —— 这就是哈希表的查询魔力 学完数组、栈、队列,你一定发现了一个痛点:“...
之前讲栈是 “先进后出的叠盘子”,而队列是 “先进先出的排队”—— 比如外卖订单 “先下单先处理”、消息推送 “先发送先接收”,核心是 “只能从队尾加、队头删”。这篇和栈的实...
栈的实现过程拆解:数组和链表如何一步步造一个栈? 这篇咱们不绕弯,直接从 “造栈” 的角度出发,分别用数组和链表实现一个简单的 “商品 ID 栈”(存最近浏览的商品 ID),...
——1000 条数据中间插一条:数组要挪 999 次,链表改 2 个指针就够 —— 这就是链表的灵活之处 学完数组,很多人会问:“数组查得快,但中间增删太麻烦,有没有能灵活改...
——10 万条数据:数组找一条需遍历 10 万次,哈希表 1 次即得 —— 这就是数据结构的魅力 提到数组,很多人只知道 “是存数据的列表”,但说不清它在内存里到底长什么样,...
在前四篇中,我们已理清内存性能的核心指标、不同场景的内存特点,本篇将聚焦 “落地”—— 从代码选型到架构监控,给出 5 个能直接用在项目里的内存优化技巧,帮你既提性能又省资源...
在前面的系列文章中,我们先后探讨了内存的基础概念、语言层的内存问题(泄漏 / 溢出)、QT 的父子对象管理,以及.NET 的 GC 机制 —— 这些都聚焦于 “程序如何使用内...