1. 背景 本篇文章完成于2023年初,公司内部信息已做脱敏处理 2022年10月中旬Apple针对iOS逐步推出了16.1系统,动态布局SDK的iOS端在稳定运行了很长时间...
1. 背景 本篇文章完成于2023年初,公司内部信息已做脱敏处理 2022年10月中旬Apple针对iOS逐步推出了16.1系统,动态布局SDK的iOS端在稳定运行了很长时间...
公司内部项目不方便提供源码
Metal基础入门一、背景和技术选型 关于技术方案的选型,最权威的肯定是Metal for OpenGL Developers[https://developer.apple.com/vide...
一、背景 首先要知道链接是干什么的。我们可以通过IDE写一部分代码,也需要从其他的Libray或者FrameWork使用第三方提供的代码。为了能够用到这些三方代码,我们需要一...
前言 LLDB是搭配LLVM的一个调试工具,就如同GDB之于GCC。我们日常开发中几乎时时刻刻和它在打交道。下面简单地从多个方面来了解以及使用LLDB: 1、BreakPoi...
一、背景和技术选型 关于技术方案的选型,最权威的肯定是Metal for OpenGL Developers[https://developer.apple.com/vide...
前言 本文是对OpenGL Projection Matrix一文的中文翻译,初衷是因为自己学习OpenGL时,对投影变形的数学推导比较感兴趣,因此找到了该文章。而本文并不是...
这个node是从最后一个非叶子节点开始的,比如上面浅黄色标出的节点。就是说需要遍历所有非叶子节点。而这个的目的是为了维持最大堆的性质,我理解这并不是重复创建。
最大堆(创建、删除、插入和堆排序)关于最大堆 什么是最大堆和最小堆?最大(小)堆是指在树中,存在一个结点而且该结点有儿子结点,该结点的data域值都不小于(大于)其儿子结点的data域值,并且它是一个完全二叉...
@syx_b2ff 在symbol table里面每一个符号实体,他们首个offset都是以0x10递增的。你在indirect symbol的data值乘以0x10,然后加上symbol table的首地址就可以得到indirect symbol里面对应符号在符号表中的位置了
iOS逆向工程 - fishhook原理fishhook是Facebook提供的一个动态修改链接mach-O文件的工具。利用MachO文件加载原理,通过修改懒加载和非懒加载两个表的指针达到C函数HOOK的目的。 前...
processon
A Malloc Tutorial前言 本篇文章是对该文章的翻译,如有疑问可对照原文。 一、介绍 什么是malloc?如果连这个名儿都没有听说的话,那么应该在读这篇文章之前先去学习一下Unix环境下的C语言。...
前言 本篇文章是对该文章的翻译,如有疑问可对照原文。 一、介绍 什么是malloc?如果连这个名儿都没有听说的话,那么应该在读这篇文章之前先去学习一下Unix环境下的C语言。...
用的starUML
细看objc-weak源码本文不看其他,只专注于weak的内部结构实现细节和源码解读,看了网上很多的文章都是贴上一篇open source里面的代码,并没有对实现细节进行解释。所以在这篇文章中,主要分...
@CXYMichael 所以提供这种API只是方便了使用使用啊,我觉得这样做反而会误导使用者
最大堆(创建、删除、插入和堆排序)关于最大堆 什么是最大堆和最小堆?最大(小)堆是指在树中,存在一个结点而且该结点有儿子结点,该结点的data域值都不小于(大于)其儿子结点的data域值,并且它是一个完全二叉...
@CXYMichael 这时间复杂度和维持完全二叉树有什么差别呢?
最大堆(创建、删除、插入和堆排序)关于最大堆 什么是最大堆和最小堆?最大(小)堆是指在树中,存在一个结点而且该结点有儿子结点,该结点的data域值都不小于(大于)其儿子结点的data域值,并且它是一个完全二叉...
@CXYMichael 据我了解Java存在的弊端是为了使用者方便,并不会考虑到时间复杂度等。就好像在C++里面vector和list同样都是顺序容器,但是vector就不支持push_front,而list却支持。但是Java里面为了达到统一的效果就会让数组(向量)支持头部插入,这样带来的问题是会增加极大的消耗。好了回答你第一个问题:我举这个例子的目的是想说你怎么操作都能做,但是删除根节点是能达到时间复杂度为O1。删除其他节点明显是没有这么高效的。第二个问题:你删除了任何一个节点以后不进行树节点的移动,怎么保证这是一颗完全二叉树呢?
最大堆(创建、删除、插入和堆排序)关于最大堆 什么是最大堆和最小堆?最大(小)堆是指在树中,存在一个结点而且该结点有儿子结点,该结点的data域值都不小于(大于)其儿子结点的data域值,并且它是一个完全二叉...
哨兵就是在数据结构里面经常提到的一个角色,通常用于保存一下辅助信息这些。如果存在哨兵的话,一般存储数据是从下标为1开始。
最大堆(创建、删除、插入和堆排序)关于最大堆 什么是最大堆和最小堆?最大(小)堆是指在树中,存在一个结点而且该结点有儿子结点,该结点的data域值都不小于(大于)其儿子结点的data域值,并且它是一个完全二叉...
@打洞 我听着有点迷糊,如果你是要问文章里面key的作用的话,第0个元素的key保存元素个数。真实的数据是从下标为1的地方开始
最大堆(创建、删除、插入和堆排序)关于最大堆 什么是最大堆和最小堆?最大(小)堆是指在树中,存在一个结点而且该结点有儿子结点,该结点的data域值都不小于(大于)其儿子结点的data域值,并且它是一个完全二叉...
@打洞 您说的是我文章里的代码,还是书上的代码?
最大堆(创建、删除、插入和堆排序)关于最大堆 什么是最大堆和最小堆?最大(小)堆是指在树中,存在一个结点而且该结点有儿子结点,该结点的data域值都不小于(大于)其儿子结点的data域值,并且它是一个完全二叉...