自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 绘制性能

绘制性能当你不使用命令行工具的时候,你的相关绘制代码是性能考虑的主要一块。为了频繁的更新主界面,需要大量的绘制工作,同时你也必须消耗更多的时间。绘制要点下面主要介绍如何提高程序的绘制效率。减少绘制的次数绘制没必要的内容可能导致绘制的效率很低。当你的应用程序程序收到重新绘制的事件的时候,你应该专注你的绘制区域,将绘制限制在该区域内。优化你的调整大小相关代码活动窗口大小的改变将会对绘制性能影响大于其他更

2017-10-10 13:51:14 344

转载 多线程程序中操作的原子性

多线程程序中操作的原子性最近看了一篇好文章,拿出来分享哈,不喜勿喷!背景原子操作就是不可再分的操作。在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:多线程程序中对变量的读写操作是否是原子的?多线程程序中对Bit field(位域)的读写操作是否是线程安全的?程序员该如何使用原子操作?多线程环境下对变量的读写

2017-01-03 10:15:00 391

原创 typedef 笔记学习

阐释一直在忙,最近终于有时间回顾以前所写过所学过的一些基础知识,发现受益匪浅,可以说是返璞归真吧!比如今天所说typedef,大部分应该用的很多,但是说出有哪些方面的好处,可以说不一定很全,今天就给自己做个笔记,以免以后忘记!在大多数C或者OC工程中,声明typedef主要是创建一个与其他C类型同名的名字,特别是结构体和指针,基本上可以用于大部分类型!使用typedef主要有以下几点:隐藏实现细节。

2016-12-29 18:10:05 294

原创 单链表

由于顺序表的插入、删除操作需要移动大量的元素,影响了运行效率,由此引入了线性表的链式存储。链式存储线性表时,不需要使用地址连续的存储单元,即它不要求逻辑上相邻的两个元素在物理位置上也相邻,它是通过“链”建立起数据元素之间的逻辑关系,因此,对线性表的插入、删除不需要移动元素,而只需要修改指针。线性表的链式存储又称为单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素。为了建立起数据元素之间的线

2016-09-01 12:15:52 696

原创 线性表之顺序表

顺序表,它是用一组地址连续的存储单元,依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻。第1个元素存储在线性表的起始位置,第i个元素的存储位置后面紧接着存储的是第i+1个元素。因此,顺序表的特点是表中元素的逻辑顺序与其物理顺序相同。假设线性表L存储的起始位置为LOC(A),sizeof(ElemType)是每个数据元素所占用存储空间的大小,则表L所对应的顺序存储如图2-1所

2016-08-30 16:02:01 1662

原创 线性表

线性表的定义线性表是具有相同数据类型的n (n>=0)个数据元素的有限序列。其中n为表长,当n=0 时该线性表是一个空表。若用L命名线性表,则其一般表示如下: L=(a1, a2, …, ai, ai+1, …, an)其中,a1是唯一的“第一个”数据元素,又称为表头元素;an是唯一的“最后一个”数据元素,又称为表尾元素。除第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个

2016-08-29 18:03:25 526

原创 算法效率度量:时间复杂度和空间复杂度

算法效率的度量是通过时间复杂度和空间复杂度来描述的。 .时间复杂度 一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记作T(n),它是该算法问题规模n的函数,时间复杂度主要分析T(n)的数量级。算法中的基本运算(最深层循环内的语句)的频度与T(n)同数量级,所以通常釆用算法中基本运算的频度 f(n)来分析算法的时间复杂度。因此,算法的时间复杂度也记为:T(n)=O(f

2016-08-29 17:30:55 2870

原创 算法的基本概念及特性(有穷性、确定性、可行性、输入和输出)

算法(algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。此外,一个算法还具有下列5个重要特性: 1) 有穷性一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成。 2) 确定性算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。即对于相同的输入只能得出相同的输出。3) 可行性一个算法是可行的,即

2016-08-29 17:06:02 25075

原创 数据结构三要素

1.数据逻辑结构逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。它与数据的存储无关,是独立于计算机的。数据的逻辑结构分为线性结构和非线性结构,线性表是典型的线性结构;集合、树和图是典型的非线性结构。数据的逻辑结构分类见下图。- 集合结构中的数据元素之间除了 “同属于一个集合”的关系外,别无其他关系。- 图状结构或网状结构结构中的数据元素之间存在多对多的关系。- 线性结构结构中的数据元

2016-08-29 16:49:44 9722

原创 Key-Value Coding 中文翻译-2

集合操作符集合操作符是一个项目符号,它利用关键路径对集合中的元素进行操作。下面阐释有效的集合操作符,关键路径应用实例,以及他们产生的结果。 集合操作符是关键路径,它作为 valueForKeyPath:方法参数。操作符字符串以符号@为开头,关键路径集合在操作符的左边,数组和集合都适用于操作符,在操作符的右边是一个集合属性列表。 实例1 操作关键路径格式除了@count操作符以外,都有一个集合属性

2016-08-24 17:53:08 342

原创 copy,retain从内存的角度去阐释实现原理(2)

上篇文章讲述内存的基本原理,我想如果你不理解内存的基本原理,后面没必要看!网上对copy和retain的解释千篇一律,我觉得可能对新手很难理解,因为解释的都很牵强。 copy是创建一个新对象,retain是创建一个指针,引用对象计数加1。Copy属性表示两个对象内容相同,新的对象retain为1 ,与旧有对象的引用计数无关,旧有对象没有变化。copy减少对象对上下文的依赖。 re

2016-07-04 18:15:18 269

原创 ios内存管理深入解析

内存今天我们来对copy,retain,assign来一个比较深刻的认识,弄明白为什么要这么做!数据乃以生存的基础那就是内存。内存区域 有人认为三种,也有人认为四种,还有人认为是五种,我相信他们都有道理,没必要深究。这里以五种为例,其实我们只需要知道前面三个就够了。 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区

2016-06-22 18:18:44 288

空空如也

空空如也

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

TA关注的人

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