自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

旭旭的专栏

主要专注于ios

  • 博客(26)
  • 收藏
  • 关注

原创 Reactivecocoa中的宏研究1

自从在项目中使用了Reactivecocoa就感受到了RAC的强大。决定仔细研究研究RAC的代码。RAC中有不少好用的宏,正式这些宏帮助我们简化了不少代码,于是我决定从研究宏开始。之前对宏的理解很浅显,读了RAC里面的宏之后,感觉很震撼。下面把我学习时的总结列出://// metamacros.h// RAC//// Created by 旭旭 on 16/7/17./*......

2016-07-19 23:31:37 2445

原创 iOS内存管理

iOS内存管理主要参考资料:《Effective Objective-C 2.0》,《Objective-C高级编程 iOS与OS X多线程和内存管理》在学习内存管理的时候,查阅了不少资料,零零散散的记录在有道云笔记中,在这里总结提炼一下,希望在方便自己查看的同时能帮助到大家。1.引用计数在引用计数架构下,每个对象都有个可以递增或递减的计数器,用以表示当前有多少个事物想令此对象继续存活下去。这在OC

2016-07-16 01:40:17 2067

原创 6.学习操作系统之设备管理

1.设备管理概述1.1设备管理的任务和功能设备管理的主要任务是完成用户提出的I/O请求,为用户分配I/O设备,提高I/O设备的利用率,方便用户使用I/O设备。设备管理应该具备以下功能:设备分配。按照设备类型和相应的分配算法决定将I/O设备分配给哪一个要求使用该设备的进程。如果在I/O设备与CPU之间还存在着设备控制器和通道,则还需分配相应的控制器和通道,以保证I/O设备与CPU之间有传递信息的通路

2016-01-06 22:09:07 4225

原创 2.学习操作系统之进程控制与同步

1进程的概念1.1程序的顺序执行一个程序通常由若干个程序段组成,这些程序段必须按照某种先后次序执行,只有在前一个程序段执行完成后,后面的程序段才能执行,这类计算过程就是程序的顺序执行过程。 顺序执行的特征:顺序性。处理机严格按照程序所规定的顺序执行;封闭性。程序一旦开始运行,其执行结果不受外界因素的影响。因为程序运行时独占系统的各种资源,故这些资源的状态(除初始状态外)只有本程序才能改变。可

2015-12-29 22:16:14 2749

原创 1.学习操作系统之操作系统引论

1.操作系统引论知识点:操作系统是对计算机资源进行管理的系统软件。操作系统的基本类型: 批处理分时实时操作系统中采用多道程序设计技术提高了cpu和外部设备的利用率。操作系统提供给程序员的接口是系统调用。分时操作系统的特征:多路性(同时有多个用户使用一台计算机;宏观上看有多个用户同时使用计算机,微观上各用户轮流使用计算机。)交互性独占性(每个用户各占一个终端,彼此独立操作互不干扰,

2015-12-04 23:50:06 1189

原创 旭说数据结构之图的基本知识

1.图的定义较之线性表的1对1结构、树的1对多结构,图是多对多的数据结构。 图是由顶点和边组成的,一个图中至少有一个顶点(之前我们说树的时候,允许树中结点个数为0),所有顶点组成集合V,两个顶点之间如果相连就产生一条边,所有的边组成集合E,我们用G表示一个图,则G=(V,E)G=(V,E) 下面列出图中的一些概念: 概念 解释 示意 无向边 两个顶点之

2015-11-29 17:04:20 544

原创 旭说数据结构之二叉查找树

上一篇详细介绍树的特殊结构——二叉树的相关知识和操作。 这一篇介绍二叉树的特殊结构——二叉查找树。 较之一般的二叉树,二叉查找树限定了结点的左子树的所有结点值均小于该结点,结点的右子树的所有结点值均大于该结点。下图给了一个示意: 所以在往二叉查找树中插入元素时,要注意,不能随便找到一个空位就插入,而是要通过与根结点的比较,判断插在根结点的左子树还有右子树,倘若应该插在右子树,在与右子树的根

2015-11-20 17:18:33 343

原创 旭说数据结构之二叉树

在”旭说数据结构之树的简介中“介绍了树的基本知识。这一篇介绍树中的一个重要结构,二叉树。1.简述二叉树二叉树既然是树中的一个重要结构,它就在拥有树的全部特征的同时,还拥有自己的独特性。既然名字中带二,就说明最多可以分两个叉,即二叉树的度为2,同时二叉树还规定子树有左右之分,左边的叫做左子树,右边的叫做右子树。规定了左右之分后,3个结点的二叉树就有5种状态了: 定义 解释 完全二叉树 设

2015-11-17 21:33:27 545

原创 旭说数据结构之树的简介

1.概念描述线性表是一对一的数据结构。 树是一对多的数据结构。 树的定义是: 有n(n≥0)n(n\ge0)个结点,树的定义中允许结点个数为0的情形,结点之间有一定的关系,什么关系呢, 1. 当n=0n=0时,我们称这个树为空树; 2. 当n>0n>0时,有一个特定的结点被称之为根节点(root),然后其余结点都连在根结点的下面并进行延伸,与根节点直接相连的结点又构成了几棵子树,这几个节

2015-11-16 15:58:52 471

原创 旭说数据结构之散列表(哈希表)

对于线性表这种数据结构,当我们查找指定值的时候,只能通过与表中各个元素进行比较的方法。因为线性表每个位置上存放的值与位置没有关系,这个位置上想放什么值就放什么值。 而散列表(又称哈希表)这种数据结构每个位置上放置的数据的值与位置是有关系的,换句话说,你的数值是A,就只能放到f(A)f(A)这个位置上,你的数值是B,就只能放到f(B)f(B)上,这样当我想要知道数值A在不在散列表中的时候,我就计算一

2015-11-14 17:05:20 545

原创 旭说数据结构之用两个栈实现队列

用栈来实现队列。 栈的特征是 先进后出; 队列的特征是 先进先出; 我们把1、2、3入栈A,然后出栈,把出栈元素入到另一个栈B中(即把3、2、1入到另一个栈中),这时操作栈B执行出栈操作,出栈的顺序是1、2、3.如此一折腾,使用两个栈,便把1、2、3按照先进先出的规则输出了。 就好比有个黑匣子,它使得进去的元素只能按照先后顺序出来: 使用两个栈来实现队列,有个需要考虑的问

2015-11-14 11:41:01 393

原创 旭说数据结构之队列

队列又是一种特殊的线性表。特殊之处在于:想要移除线性表中的元素,必须从首元素开始移除;想要往线性表中插入元素,必须在尾部进行插入与栈遵循的先入后出原则不同,它遵循的是先入先出的原则。拿到一个队列,我们可以对它进行入队(队尾插入)和出队(队首删除)操作。 假如我想要使用队列,我肯定要先拿到一个队列。如果采用链表结构,利用链表的动态增长特性,我们倒是可以不用考虑队列的容量问题,但是因为要动态创建

2015-11-13 22:55:18 419

原创 旭说数据结构之栈的小题目

1.定义栈的数据结构,要求添加一个min()函数,能够得到栈的最小元素。要求函数min(),push(),及pop()函数的时间复杂度都是O(1).如果用上一篇文章中栈的实现方式“旭说数据结构之栈”,push和pop的时间复杂度可以是O(1),但是要想获得栈中的最小元素,需要遍历存储元素的数组,时间复杂度为O(n)。 这是得考虑变换栈的数据结构。思考1: 如果说我们给栈这个类添加一个成员变量mi

2015-11-12 23:36:31 507

原创 旭说数据结构之栈

提到栈,首先想到的就是先进后出,就像堆盘子一样,最先放的盘子放在最下面,最先取出的盘子是最后放的在最上面的盘子。 在网上看到有人打了一个比方,觉得很形象,拿来分享一下。 你就想像栈是一个竹筒,一头封死了,一头有开口可以往里面放东西,这样第一个放进去的东西,就只能最后一个倒出来。第二个放进去的,就倒数批二个倒出来。 至于它有什么用:再打个比方,你在洗衣服,洗到一半,你妈叫你去扫地(妈妈的话

2015-11-12 20:56:58 439

原创 旭说数据结构之链表补充(双向链表)

上文已经介绍了链表中的单链表,这里我们再叙述一下双向链表1.双向链表对比单链表,双向链表能够直接找到节点的前驱,也就能从任意一个节点到达链表的头结点和尾节点。如下图所示: 下面我们还是从使用的角度出发来定义双向链表的接口。我想使用一个双向链表,那我就new一个来用。然后我就往里插入元素。之后我又想在某个索引处插入一个元素。于是我就可以写出下面的代码: TwoDirectionsLinkL

2015-11-12 17:11:50 366

原创 旭说数据结构之线性表

数据结构就其字面意义来看,就是数据和结构。我们有一堆数据,它们之间有一定的结构关系,数据就像是砖头,把它们按规律放置就建成了有结构的房子。我们摆放数据的方式有多种。把数据挨个放,除了第一个数据和最后一个数据外,每个数据的前面和后面都各有一个数据(专业术语就是都有前驱和后继),这是一种一对一的数据结构,就是我们今天要详述的线性表。举个简单的例子,我是一个面试官,我要面试前来应聘的人,面试开始前已经

2015-11-12 14:31:14 730

翻译 Core Animation Basics(apple官方文档翻译与学习02)

核心动画为应用程序的animating view和其他的可视元素提供了一个通用的目标系统。核心动画不是应用程序view的替代。相反,它是一种与view相结合的技术,以提供更好地表现效果,为view的内容可动提供支持。它通过缓存view的内容到bitmap来实现。在某些情况下,这种缓存行为可能需要你重新思考如何展现和管理你的app的内容,但是大多数时候,你使用核心动画甚至不知道核心动画就在那里。除了

2015-09-14 21:34:42 495

翻译 Core Animation Introduction(apple官方文档翻译与学习01)

1.关于核心动画核心动画是图形渲染,是动画基础设施; 在iOS和mac OS X均可使用; 用来给应用程序的视图和其他视觉元素添加动画; 使用核心动画,不需要我们自己画动画的每一帧; 你要做的就是配置几个动画参数(比如开始和结束点),然后告诉核心动画开始吧; 核心动画会坐剩余的事情,把大部分的实际绘图工作交给图形硬件加速渲染; 这种自动图形加速会产生高帧率和平滑的动画,并且不会加重CPU

2015-09-14 16:55:57 423

原创 c语言中的指针(包括数组与指针相关)

1.简述c语言中用形如: int * p = # 这样的方式来定义一个指针,指针p代表了num的地址。 而指针与地址是不等价的,它俩的重要区别是指针是有类型的; 这里简单的介绍一下内存地址: 8位为1字节,每8位我们给它分配一个地址,每个地址由32位二进制数组成(对32位cpu而言;32位cup所能寻找到的地址为32位),我们知道32位二进制数组成的数字共有2^32个,也就是说总共

2015-09-12 00:57:09 576

原创 一.递归

学习ios时,想要打印UIView的所有子控件,考虑使用递归来做这件事。 假设方法printSubView:(UIView*)能实现这个功能;我们输入一个名为baseView的UIView,如果baseView没有有子控件,就没有要打印的东西;如果它有子控件就打印它的所有子控件,然后它的每个子控件再执行printSubView方法,直到没有子控件为止。 假设baseView有两个子控件a1、a

2015-08-19 00:11:42 386

原创 利用结构体来实现高性能洗发扑克牌程序同时探讨const与指针

const char* face

2014-10-15 17:28:59 860

原创 由一个翻转字符串程序看递归

大伙都知道递归就是一个函数自己

2014-10-14 17:13:05 840

原创 对洗发扑克牌程序的个人理解

对洗发扑克牌程序的个人理解洗扑克牌的过程就想当于对52张牌进行重新排序,然后把牌放在一边,等待着发牌。在主程序里我们先定义一副牌,牌有四种花色,每种花色有13张。int main(){ const char *suit[4]={"红桃","黑桃","草花","方片"}; const char *face[13]={"Ace","Deuce","三","四","五","六","七"

2014-10-13 11:53:09 1349

原创 数组元素查找中的线性查找和折半查找

线性查找就是把要查找的关键字与数组

2014-10-10 19:35:56 1033

原创 由一个switch语句理解c语言中getchar函数

调用getchar函数时

2014-10-07 20:35:39 3279 1

原创 对c语言中printf函数的个人理解

对于刚刚接触c语言的人来说,printf函数应该是

2014-10-07 12:26:38 3366 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除