首页
学习
活动
专区
工具
TVP
发布

iOS小生活

专栏成员
162
文章
374389
阅读量
39
订阅数
声明NSString属性的时候到底要不要采用copy限定词?
通过这些文章,我们有了一个共识:在声明NSString类型的属性的时候需要采用copy内存管理策略。理由我在上面的文章中也做过详细介绍,这里不赘述。
拉维
2022-06-15
2140
数据结构与算法(十六)——静态查找&动态查找
静态查找指的是只对表执行查找操作,并不会动态添加元素。静态查找主要有顺序查找和二分查找两大类,接下来我们依次讲解一下。
拉维
2022-06-15
1.7K0
iOS开发中的单例设计模式
五年前,我曾经在《iOS开发中的设计模式-单例模式》中介绍过Objective-C中的单例设计,可以看到,OC中的单例实现还是比较复杂的,需要考虑的场景也很多。
拉维
2022-06-15
5160
数据结构与算法(十五)——图的拓扑排序和关键路径
AOV,Activity On Vertex Network,即顶点活动网。一个工程常常会被分为多个小的子工程,这些子工程被称为活动,在有向图中,若以顶点表示活动,有向边(也可以称为弧)表示活动之间的先后关系,这样的图简称为AOV网。
拉维
2022-06-15
2.8K0
数据结构与算法(十四)——图的最短路径问题
最短路径,指的是从连接图中的某个顶点出发到达到达另外一个顶点所经过的边的权重和最小的那一条路径。
拉维
2022-06-15
4670
数据结构与算法(十三)——连通图的最小生成树问题
一个连通图的生成树指的是,极小的连通子图,它含有图中的全部n个顶点,但是只足以构成一棵树的(n-1)条边。
拉维
2022-06-15
3.5K0
数据结构与算法(十二)——图结构初探
图(Graph),是由顶点的有限非空集合和顶点之间边的集合组成。图中有两个元素:顶点和边。
拉维
2022-06-15
6920
数据结构与算法(十一)——线索化二叉树&哈夫曼树
如上图所示,是一个二叉树。可以看到,每一个节点都有三个元素:左子指针域、右子指针域、值域。对于存在左右子树的节点,其左右指针域指向的分别是各自的左右子节点;而对于未存在左子树,或者未存在右子树,或者左右子树均未存在的节点,该节点的左子指针域、右子指针域、左右指针域就会指向为空,此时就会存在指针域空间浪费的情况。而线索化二叉树就可以将这些浪费的指针域空间给利用起来,这是第一个背景。
拉维
2022-04-19
5410
数据结构与算法(十)——二叉树初探
树是具有N(N>=0)个节点的有限集。树中可以没有任何节点(空树),也可以只有一个根节点(如上图左侧),也可以有多个节点(如上图右侧)。
拉维
2022-04-19
3510
数据结构与算法(九)——字符串的匹配算法
有一个主串S = {a, b, c, a, c, a, b, d, c},模式串T = { a, b, d } ,请找到模式串在主串中第一次出现的位置。 提示: 不需要考虑字符串大小写问题, 字符均为小写字母。
拉维
2022-04-19
1K0
数据结构与算法(八)——栈思想下的算法题目解析
假设表达式中允许包含两种括号:圆括号与方括号,其嵌套顺序随意,即([]())或者[([][])]都是正确的,而[(]或者(()])或者([())都是不正确的格式。请设计一个算法来检验括号是否正确匹配。
拉维
2022-04-19
3480
数据结构与算法(七)——队列结构
如上图所示,在队列头部出队列,在对列尾部入队列。在队列的结构中,有四个要素:队列头、队列尾、队列长度、队列内容。
拉维
2022-04-19
5280
数据结构与算法(六)——栈结构
栈和队列属于逻辑结构中的线性结构,也就是说,栈和队列在本质上就是属于线性表。但是栈和队列与一般的线性表相比,其特殊性就在于它们在元素读取的基本操作上面是不一样的:
拉维
2022-04-19
3800
数据结构与算法(五)——链表相关算法题目
前面几篇文章主要是讲了线性表,线性表是四种逻辑结构(集合结构、线性结构、树结构、图结构)的一种。任何一种逻辑结构,都是通过两种物理结构(顺序存储、链式存储)来在内存中实现的,线性表也不例外。在前面的几篇文章中,我们既讲了线性表的顺序存储,也讲了线性表的链式存储。在线性表的链式存储中,我们又细分了单向链表、单向循环链表、双向链表、双向循环链表。如下图所示:
拉维
2022-03-28
7740
数据结构与算法(四)——双向链表&双向循环链表
此时,比如我已经获取到了C节点,那么我想要获取到C节点的前一个节点,就需要再次遍历该链表,且时间复杂度是O(n)。那么有没有一个好的方案可以便捷地获取到C的前一个节点呢,答案是使用双向链表。
拉维
2022-03-28
4560
数据结构与算法(三)——单项循环链表
📷 可以看到,单向循环链表的尾结点的指针域会指向首元结点。 一、单项循环链表的初始化 创建一个单向循环链表的逻辑如下: 1,第一次创建的时候,它就是一个指针,还没有开辟任何内存空间 (1)新增一个节点 (2)将新节点的指针域指向节点自身 (3)将新节点设置为链表的首元节点 2,链表中已经存在至少一个节点,此时再向其中新增节点 (1)找到链表的尾结点 (2)新建一个节点 (3)新节点的指针域指向首元结点 (4)将尾结点的指针域指向新节点 代码如下: #include <stdio.h> #include "s
拉维
2022-03-28
2930
数据结构与算法(二)——线性表
所谓顺序存储,就是开辟一段连续的内存空间来存储。因此,线性表的顺序存储,其逻辑相邻,物理存储地址也相邻。
拉维
2022-03-28
3340
数据结构与算法(一)
数据与数据之间是一对一的关系。凡是符合一对一关系的结构都是线性结构,比如线性表、队列、栈、数组、字符串等。
拉维
2022-03-28
3020
Flutter混合工程的自动化
在《Flutter与原生工程的混合开发》中,我介绍了Flutter工程与Native工程的混合开发,今天我们来聊一聊混合工程的自动化。
拉维
2022-03-28
1.1K0
Flutter的热重载原理
Flutter的热重载功能,想必诸位都已经使用过好多次了。它的使用流程很简单,终端输入r或者R即可;但是其内部实现是非常复杂的,今天这篇文章,我们就是通过下断点这种动态调试的方式来一步一步在这些复杂的实现代码中去找到核心的流程。
拉维
2022-03-28
1.8K1
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档