自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小王的技术窝

生命对于某些人来说,一直都是美丽的,因为这些人的一生都在为某个梦想而奋斗!

  • 博客(181)
  • 资源 (18)
  • 问答 (4)
  • 收藏
  • 关注

原创 二叉排序树

二叉排序树又称二叉查找树,它是一种对排序和查找都很有用的特殊二叉树。定义:(1)若它的左子树不为空,则左子树上的所有结点的值均小于它的根结点的值;(2)若它的右子树不为空,则右子树上所有结点的值均小于它的根结点上的值;(3)它的左右子树本身也分别为二叉排序树。通过中序排列我们发现中序遍历的结果是结点的值是由低到高的。二叉排序树的二叉链表存储表示typedef struct{ keyType k

2016-03-10 12:16:27 2565 1

原创 线性表的查找

查找基本概念 查找,也可称检索,是在大量的数据元素中找到某个特定的数据元素而进行的工作。线性表的查找在查找表中,线性表查找是最简单的一种,主要的操作为顺序查找和折半查找。顺序查找:从表的一端开始,依次将查找的关键字与给定数据库进行批对,若关键字在给定数据库中存在,则查找成功,否则当数据库从头到尾没有批对到,则查找失败。作用范围:即使用线性表的顺序存储又适合于线性表的链式存储结构。数据元素类型定

2016-03-09 18:42:08 2493 2

原创

图:Graph=(V,E)V:顶点(数据元素)的有穷非空集合; E:边的有穷集合。 有向图 无向图无向图:每条边都是无方向的有向图:每条边都是有方向的完全图:任意两个点都有一条边相连稀疏图:有很少边或弧的图。稠密图:有较多边或弧的图。权与网图中边或弧所具有的相关数称为权,表明从一个顶点到另一个顶点的距离或耗费。带权的图称为网。邻接:有

2016-03-09 11:20:30 890

原创 赫夫曼树

赫夫曼树又称最优树,是一类带权路径长度最短的树。路径:由一结点到另一结点间的分支所构成路径长度:路径上的分支数目 例如上面的a->e的路径长度=2带权路径长度:结点到根的路径长度与结点上权的乘积树的带权路径长度:结点到根的路径长度与结点上权的乘积赫夫曼树:带权路径长度最小的树 上面这个图的树的值为WPL=7*2+5*2+2*2+4*2=36赫夫曼树构造过程基本思想:使权大的结点靠近根 操作要

2016-03-08 21:24:05 2188 1

原创 树、二叉树(二)

限于篇幅过长上一篇我们只谈了树、二叉树(一)比较基础的认识,下面我们深入的学习树与二叉树。顺序存储结构 使用一组地址(一维数组)连续的存储单元来存储数据元素 //-------二叉树的顺序存储表示--------- #define MAXTSIZE 100 //二叉树的最大结点数 typedef TElemType SqBiTree[MAXTSIZE]; SqB

2016-03-08 17:52:58 1644

原创 Swift 运算符操作

在Swift中延伸了一种和C++类似的新特性,Swift的运算符提供了良好的可拓展性,我们可以对运算符进行操作,对运算符的操作其实就是对运算函数的重写或者重载。注意运算符操作一般被操做的参数往往要加上In-Out模式。+、-(运算符重载)我们在实际开发中,Swift可自定义运算符,并不限于预设的运算符,我们可以对+进行重载,使其完成Int与Double或者Flaot相加。 Swift提供了如下的

2016-03-07 18:27:43 2231 5

原创 Swift泛型

泛型是为Swift编程灵活性的一种语法,在函数、枚举、结构体、类中都得到充分的应用,它的引入可以起到占位符的作用,当类型暂时不确定的,只有等到调用函数时才能确定具体类型的时候可以引入泛型。泛型函数定义fun 函数名<T,S>(形参列表)->返回值类型{ //函数体...}例子: func copyArray<T>(src:[T],inout dest:[T]) { for e

2016-03-06 20:14:56 1824

原创 树与二叉树(一)

树定义 树是n(n≥0)个结点的有限集,它或为空树(n=0),或为非空树非空树T满足以下条件:(1) 有且仅有一个称为根的结点;(2)除根结点以外的其余结点可分为m(m>0)个互补相交的有限集T1,T2,…Tm,其中每一个集合本身又是一棵树,并且称为根的子树。 空树 一般的树基本术语根———即

2016-03-05 20:21:25 3697 1

原创 Any、AnyObject、as

Swift中增加了两种类型别名Any:可表示任意类型,(Int、Double等值类型)。AnyObject:可表示任意class类型实例, 一个任何对象类型的数组Any类型: class Calculate { var NumberA:Any! var NumberB:Any! init(Numbera:Any,Numberb:Any) {

2016-03-05 17:09:35 1850

原创 iOS单例模式

下午帮同事改了一下午的代码,深深的被刺伤了,也深深的觉得代码架构的重要性,更深深的觉得应该好好的打磨一下设计模式。于是乎就钻研一下设计模式由易到难,先从iOS最简单的单例模式说起。作为iOS最简单的设计模式—单例模式,主要的作用是:保证了一个类在项目中只有唯一的实例。节约了资源,减少不必要的开支。怎样创建一个单例?定义一个全局变量:static Singleton * _instance =

2016-03-04 18:37:35 1735 2

原创 Swift析构器

Swift中的析构器的作用类似C++中的析构器,用deinit关键字,在实例被销毁之前被自动调用的,主要作用是释放一些资源,比如你之前打开了一个数据库,并写入一些数据,在类实例被释放之前需要关闭该数据库。 deinit{ //释放一些资源 }注意:析构器只能在类(class)中使用无需使用func关键字也没有括号( )析构函数不能有返回值和参数不能手动调

2016-03-03 17:54:17 1266

原创

串(String)—–零个或多个字符组成的有限序列 a="beijinghuanyingni"b="beijinghuanying"c="beijin"d=""子串:串中任意个连续的字符组成的子序列称为该串的子串。 比如上面的b是a的子串、c是a或者b的子串。 空串:零个字符的串。注意是”“而不是” “。空串是任意串的子串,任意串是其自身的子串。 串的抽象数据类型 ADT Stri

2016-03-01 20:26:52 1387

原创 构造器(二)----指定构造器、便利构造器

在上一篇博客中简单介绍了构造器基础层面的知识构造器(一),下面我们深入的学习类的构造器应用。在Swift中类一共有两种构造器:指定构造器便利构造器什么是指定构造器,有什么作用?我个人的理解为在类中没有加任何关键字的构造器称为指定构造器,作用为初始化类中所有的实例存储属性init(){ ...}什么是便利构造器,有什么作用?我个人理解为在类中(只能在类中,结构体和枚举里面是没有的)

2016-03-01 11:47:23 1970

原创 构造器(一)

构造器的关键字是init,今天我们就谈谈这个init关键字,在创建类或者结构体时,必须为所有的存储属性设置初始值,我们可以在定义的时候直接设置默认值。或者在构造器中设置值。实例存储的初始化大致分为如下几类:定义实例存储属性时显式指定初始值。实例存储属性的类型为可选类型,这样默认分配nil作为初始值提供构造器为实例存储属性分配初始值很明显,今天我们学习的是第三者无参构造器 构造器后面括号里

2016-02-29 15:42:38 1953 2

原创 类型属性、方法

在Object-C中我们已经清楚的知道有实例方法、属性和类方法、属性,类方法只能有类去调用,而实例方法只能有类申请的实例去调用。而在Swift中同样遵守这个约定。 在Swift中有static、class两个修饰符,这两个修饰符的作用是一样的,但它们的使用场景是不一样的。static:在枚举、结构体中修饰属性、方法,定义类型属性、类型方法。class:在类中修饰属性、方法,定义类型属性、类型方

2016-02-29 09:39:23 1027

原创 可选链

学习可选链的前提我们要对可选类型进行复习,可以参考我之前写的这篇博客Object-C—>Swift之(二)可选类型个人理解可选链建立在可选类型的基础上,可选类型操作的是某个变量,而可选链操作的是某几个类围绕今天是猴年正月二十一为题材,学习一下这个可选链 class Animalsign { var animal="" var month:Month!

2016-02-28 20:44:52 1864 3

原创 下标

说起下标的作用对于数组和字典来说并不用陌生,但在Swift中所有的类型都支持下标。用下标可以很方便的访问对象的具体值。语法格式使用subscript关键字定义下标subscript(形参列表)->下标返回值类型{ get{ //getter部分执行体,该部分必须有返回值}[set(形参名){//setter部分执行体,该部分一定不能有返回值}]}set部分:set部分可定义

2016-02-06 21:21:25 2748 1

原创 Object-C--->Swift之(十一)属性观察者

属性观察者机制能让程序在属性被赋值时获得执行代码的机会,用来监视属性的除初始化之外的属性值变化,当属性值发生改变时可以对此作出响应具体包括两个特殊的回调方法:willSet(newValue):被观察的属性即将被赋值之前自动调用方法。didSet(old Value):被观察的属性被赋值完成之后自动调用该方法。观察的范围 除了延迟存储属性之外的所有存储属性(包括实例存储属性或类型存储属性)。

2016-02-05 21:58:59 1964

转载 最新版SDWebImage的使用

我之前写过一篇博客,介绍缓存处理的三种方式,其中最难,最麻烦,最占内存资源的还是图片缓存,最近做的项目有大量的图片处理,还是采用了SDWebImage来处理,但是发现之前封装好的代码报错了。研究发现,是我用了新版的SDWebImage,好多方法都变了。现在把代码贴出来,供大家参考。尤其是新手,看完这篇博客,图片缓存so easy。最后有demo供大家下载,先学习。第一步,下载SDW

2016-02-05 17:41:27 881

原创 iOS开发PCH文件、NSLog真机不打印

添加PCH文件现在Xcode6、7创建一个新的工程时将默认不会再带有PCH文件,需要手动添加PCH文件。在Supporting Files目录下,选择 File > New > File > iOS > Other > PCH File 然后点击下一步进行命名,建议命名格式为项目名称-Prefix,如图Demo 创建的PCH文件与编译器Xcode进行连接:找到 Project > Build Se

2016-02-03 22:28:46 2963 2

原创 iOS工具篇--CocoaPods

iOS开发过程中有好多第三方框架,十分便捷与开发者用最少的代码完成最优秀的App,一个上线的项目差不多得用到很多的框架,如果我们一个一个进行添加,则显得特别的慢,慢不是重点,重点是还容易出错,例如加载高德地图的框架特别复杂的环境适配,一步出错就会出现不知名的怪错误。所以一个shell命令编辑器就呼之欲出—CocoaPods搭建ruby环境注意:2015年Apple公司推出了iOS9,用https更

2016-02-02 15:57:24 1928

转载 iOS 数据库离线缓存思路和网络层封装

一直想总结一下关于iOS的离线数据缓存的方面的问题,然后最近也简单的对AFN进行了再次封装,所有想把这两个结合起来写一下。数据展示型的页面做离线缓存可以有更好的用户体验,用户在离线环境下仍然可以获取一些数据,这里的数据缓存首选肯定是SQLite,轻量级,对数据的存储读取相对于其他几种方式有优势,这里对AFN的封装没有涉及太多业务逻辑层面的需求,主要还是对一些方法再次封装方便使用,解除项目对第三方的

2016-02-02 10:59:06 1131

原创 Object-C--->Swift之(十)存储属性

计算属性相当于Object-C的getter、setter合成的属性,在Swift中结构体、类都可以定义计算属性定义计算属性[修饰符] var 计算属性名:属性类型{ get{ //getter方法执行体,该方法必须有返回值 } [set(形参名) { //setter方法执行体,该方法一定不能有返回值 }]}注意:var计算属性只能定义成变量形式enum Season{ca

2016-01-30 12:53:34 959

原创 Object-C--->Swift之(九)延迟存储属性

Swift引入了一种新的机制–延迟存储属性机制,在第一次被调用时才会被计算初始值的属性,声明时需要使用lazy修饰符。 注意:定义属性时一定得是变量(var),常量是无法使用延迟存储机制。什么时候用到延迟存储?当某个实例持有另一个创建成本较大的实例的引用时,使用延迟存储可以降低内存开销,从而提升性能。 class Bird { var name:String var age:Int

2016-01-29 10:45:44 911

原创 Object-C--->Swift之(八)类和结构体

在Swift中类和结构体有高度的相似性。二者主要区别是: 1. 结构体不支持继承 2. 结构体不支持定义析构器 3. 结构体是值类型,而类是引用类型定义类语法格式:[修饰符]class 类名{零个到多个构造器零个到多个属性零个到多个方法零个到多个下标}对一个类定义而言,包括3种最常见的成员:构造器、属性、方法,如果程序员没有为一个类提供构造器,则系统会为该类提供一个默认、无参数的

2016-01-28 20:19:15 979

原创 Object-C--->Swift之(八)枚举

声明枚举Swift使用enum定义枚举,语法格式为enum 枚举名{//使用case关键字列出所有枚举值//枚举的其他成员}Swift即允许每个枚举值单独用一个case关键字,也允许使用一个case定义多个枚举值,多个枚举值之间以英文逗号隔开。枚举名从程序可读性方面来看,swift枚举名必须是有一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任

2016-01-28 14:26:35 1063

原创 小菜一步一步学数据结构之(六)队列

队列是一种先进先出的线性表,它只允许在表的一段进行插入,而在另外一端删除元素。 队列的顺序表示—用一维数组base[M] #define M 100//最大队列长度 Typedef struct{ QElemType *base; int front; int rear; }SqQu

2016-01-26 11:31:09 1116

原创 Object-C--->Swift之(七)嵌套函数与闭包

嵌套函数函数分为全局函数和局部函数,前面已经介绍了全局函数,下面介绍下局部函数,定义在函数体内部的函数可以成为嵌套函数。 注意:嵌套函数对外是隐蔽的,只能在其封闭函数内有效,嵌套函数只能在其封闭函数内有效,其封闭函数也可以返回嵌套函数,以便于程序在其他作用域内使用嵌套函数。func Math(#type:String)->(Int)->Int{ func square(val:Int)->In

2016-01-24 12:15:44 1721

原创 Object-C--->Swift之(七)函数重载

是什么是函数重载?名字相同的函数出现在一起,就构成了函数重载,只要形参列表或者返回值类型不同就行。判断条件形参列表、返回值类型组成、外部形参名三者其中一种不一样均可作为函数重载 举例说明 //该函数类型为()->Void func test() { } //该函数类型为(String)->Void或者(String)->() func t

2016-01-23 12:09:59 1304

原创 Object-C--->Swift之(六)函数类型

认识函数类型每个函数都有特定的函数类型函数类型是由函数的形参类型、->和返回值类型组成。例如:func Add(a:Int,b:Int){...}该函数的函数类型为(Int,Int)->Void或者(Int,Int)->()func Add()->Int{ ...}该函数的函数类型为()->Intfunc Add(){ ...}该函数的函数类型为()->()或者()

2016-01-22 20:05:18 749

原创 小菜一步一步学数据结构之(五)顺序栈

定义只能在表的一端(栈顶)进行插入和删除运算的线性表逻辑结构一对一关系存储结构用顺序栈或链栈存储均可,但以顺序栈更常见 运算规则只能从栈顶运算,且访问结点时依照后进先出(LIFO)或后进后出(FILO)的原则实现方法关键是编写入栈和出栈函数,具体实现依顺序栈或链栈的不同而不同基本操作入栈出栈读栈顶元素值建栈判断栈满栈空栈与一般线性表的区别栈是一种特殊的线性表,它只能在表的一端(栈顶)

2016-01-17 19:38:49 1412

原创 Object-C--->Swift之(七)丰富的函数形参功能

前面我们介绍了函数的入门语法,今天就仔细学习下函数的形参功能经典款式 func addDouble(a:Float,b:Float)->Float { return a+b }这个函数最经典的样式,实现了两个数的相加的功能外部参数我们在实际项目开发中类似这样的函数给形参传值的时候因没有介绍性的语句会出现传参错误。于是Swift保留了Object-C的优秀传统,在函

2016-01-17 13:21:06 1275

原创 Object-C--->Swift之(六)函数入门级讲解

定义实例函数语法func 函数名(形参列表)[->返回值类型]{//实现功能的代码}定义类函数class func 函数名(形参列表)[->返回值类型]{//实现功能的代码}注意:声明函数必须用func关键字,声明类函数必须加上class函数名尽可能的表达出这个函数功能意图,多个单词的话,第一个单词的首字母小写其他单词的首字母要大写形参列表是可以根据具体情况省略内容的,多组

2016-01-16 19:57:26 823

原创 小菜一步一步学数据结构之(四)单链表

上一篇博客学习了顺序表,最后也说明了顺序表属于静态存储,数据元素的个数不能自由的扩充。为了解决这个问题我们引入了链表链表存储结构结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻,因此线性表的链式表示又称为非顺序映像或链式映像。各个结点有两个域组成: * 数据域:存储元素数值数据 * 指针域:存储直接后继结点的存储位置 名词解析 1. 结点:数据元素的存储映像。有数据域和

2016-01-16 15:56:09 1749

原创 Object-C--->Swift之(四)强大的Switch

Swift依然继承了C和Object的Switch语句,但在原有的基础上进行了改变,使其变得更加强大任性的case标签:case标签可以紧跟多个值 var score = "C" switch score { case "A","a": print("优秀") case "B","b": print("良好") case "

2016-01-15 12:45:26 1079

原创 Object-C--->Swift之(三)nil合并运算符、范围运算符

nil合并运算符在Swift中引入一种新的运算符nil合并运算符:??,它的格式如下: let c = a??b 它的含义如下:判断可选变量a是否为nil,如果a不为nil,c就等于a所包装的真实值,如果a为nil,则程序会返回b的值。注意这里有两个必须条件: 1. a必须是可选类型的。 2. b的类型必须要和a的强制解析后的类型一致。 其实上边的代

2016-01-14 12:08:45 1201

原创 Object-C--->Swift之(二)可选类型

可选和nil的恋情 先看一个例子吧! let str="hello world" let num:Int=Int(str)这两行代码的意思str字符串转换成Int类型,嘿嘿!这不是坑计算机吗?hello world能转换成Int类型的数字吗?很显然不能,而且我们运行都不会通过的!可是我们把第二行代码换成 let num:Int?= Int(str)编译就通过了!就这

2016-01-13 21:41:52 1270

原创 Object-C--->Swift之(一)元组(tuple)类型

元组(tuple)类型 元组(tuple)使用圆括号把多个值组成一个复合值,里面的每个值可以是任意类型,而且它们之间可以不同类型。格式 变量或常量关键字 元组变量 = ( 变量,变量, …)保存某个信息表上的一行信息,可以创建一个元组var information=(1315925388,"小明","男",21)也可以这样创建 var information1:(Int64,String

2016-01-13 20:04:28 1249

原创 小菜一步一步学数据结构之(三)线性表的顺序存储结构

线性表的定义和特点有n(n≥0)个数据特性相同的元素构成的有序序列称为线性表。当个数n(n≥0)定于为线性表的长度,n=0时成为空表。特点:只有一个首结点和尾结点;除首尾结点外,其他结点只有一个直接前驱和一个直接后继。分析26个英文字母组成的英文表(A,B,C,D,…..,Z)数据元素都是字母,元素间关系是线性抽象数据类型的定义为:ADT List{ 数据对象:D={ai|ai∈ElemSe

2016-01-13 15:34:15 1299

原创 C、C++动态分配函数暨几种参数传递疑难解析

C、C++动态分配函数暨几种参数传递疑难解析

2016-01-13 15:16:41 1885

main.cpp测试用例分析

cmake_minimum_required(VERSION 3.8) project(ferry) set(CMAKE_CXX_STANDARD 98) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -pthread") add_subdirectory(ferryBase) add_subdirectory(ferryService) add_subdirectory(fileAutoSynService)

2019-12-08

C++Gsoap调用天气

C++Gsoap调用天气的一个代码,网上一大堆,但有些用不了

2017-03-03

C++操作Excel

C++操作Excel

2017-02-24

PHP登陆页面搭建

运用到HTML、CSS、PHP搭建一个简单的网站登录页面

2016-07-05

iOS冗余扫描脚本

随着iOS项目的版本演化,app中冗余文件会越来越多,app size也持续增加,是时候需要对app冗余资源进行检测,对app进行瘦身。

2016-06-02

SQLiite3新手入门Demo

SQLiite3新手入门级别的Demo,高手请绕行

2016-05-19

iOS SQLiteDemo

一个非常简单的iOS SQLiteDemo ,适合初级学习者

2016-05-12

iOS封装文件下载

封装了iOS的文件下载,降低了耦合性,希望能帮到您,给好评就是对我最大的鼓励,嘻嘻

2016-05-04

SqLiteDemo

SqLiteDemo

2016-04-28

实用工具001

工具啦,好用的工具,经济又实用,你值得拥有的啦,记得给我好评一下啦,赞起来啦

2016-01-23

iOS CoreSpotlight的简单实现

Spotlight在iOS9上做了一些新的改进, 也就是开放了一些新的API, 通过Core Spotlight Framework你可以在你的app中集成Spotlight。集成Spotlight的App可以在Spotlight中搜索App的内容,并且通过内容打开相关页面。

2016-01-04

Xcode空工程创建安装包

Xcode空工程安装包,这里是免费的,谢谢大家的支持,互相学习吧

2016-01-02

Xcode插件更新器

每次更新Xcode都导致插件不能用,这点恨头疼,其实只需要更新下插件即可

2015-12-16

UIPageControl+UIScrollView

UIPageControl继承了UIControl基类,默认属于活动控件,它可以与用户进行交互,经常与UIScrollerView结合使用,在实际项目也是经常使用的。当把UIScrollView的pagingEnabled设置为YES之后,UIScrollView至少每次滚动一页。此时通常结合UIPageControl使用,UIPageControl控件会充当两个功能。 使用UIPageControl显示当前的UIScrollView正在显示第几页。 当用户点击UIPageControl控件时程序控制UIScrollView自动滚动到相应的页面。

2015-04-09

ios常用模板框架之Nav+UITabBar代码

在实际的项目开发中总是有几个比较常见的模板,小编这几天给大伙出几期常用模板的博客,希望大家多提宝贵的意见! 这几个月最常用的莫过于Nav+UITabBar模板了;在实际的项目中,我比较侧重于纯代码,比较不喜欢拖控件,至于利弊在这里不多说了,言归正传。

2015-04-06

UIScrollView页面自动滚动效果(记得给好评呀)

UIScrollView自动分页滑动,希望给我好评。我的CSDN博客地址为http://blog.csdn.net/it_ds?viewmode=contents

2015-01-29

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

TA关注的人

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