自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(139)
  • 资源 (7)
  • 收藏
  • 关注

转载 用ruby调用shell命令的六种办法

碰到需要调用操作系统shell命令的时候,Ruby为我们提供了六种完成任务的方法:1.Exec方法:    Kernel#exec方法通过调用指定的命令取代当前进程:  例子:      $ irb      >> exec 'echo "hello $HOSTNAME"'         hello nate.local      $值得注意的是,

2014-12-01 22:45:03 2232

转载 Mac下忘记mysql密码的办法

1. 在系统偏好 中,中止MYSQL服务.;2. cd /usr/local/mysql/bin  sudo ./mysqld_safe --skip-grant-tables3. 登录MySQL;mysql4. 置空root用户的密码; mysql> update mysql.user set password=‘’ whereUser='root';

2014-11-26 00:36:39 783

原创 ObjectiveC和Swift混合编程

混合编程涉及到两方面。第一、OC文件中引用Swift代码。第二、Swift文件中引用

2014-09-18 16:53:32 1636

原创 ObjectiveC的变量类型的字符代表

请看以下程序NSDictionary *dic = @{@"1":[NSNumber numberWithBool:YES], @"2":[NSNumber numberWithChar:'1'], @"3":[NSNumber numberWithDouble:2.0],

2014-09-16 14:56:11 1137

转载 iOS开发中生成推送的pem文件

具体步骤如下:        首先,需要一个pem的证书,该证书需要与开发时签名用的一致。 具体生成pem证书方法如下:1. 登录到 iPhone Developer Connection Portal(http://developer.apple.com/iphone/manage/overview/index.action )并点击 App IDs2. 创建一个不使

2014-09-09 18:26:44 1583

原创 OC中分类的注意事项

1.如何正确使用分类:

2014-08-07 12:37:44 1292

原创 ARC引用非ARC文件以及非ARC引用ARC文件的参数设置

1.ARC引用非ARC需要增加的参数:-fno-objc-arc1.ARC引用非ARC需要增加的参数:-fno-objc-arc

2014-08-07 10:03:25 825

原创 OC中如何优化代理是否响应某个方法

看以下示例代码:

2014-08-06 18:24:53 2686

原创 OC的私有方法命名规范

在OC语言中,是不可能声明一个私有方法的。只有在实现文件中直接写,才代表shi

2014-08-05 23:06:10 2431

原创 OC开发中前缀命名的一些细节

在写OC代码的时候,尽量使用前缀,原因有以下几点:1.使用前缀可以避免

2014-08-05 22:30:24 2737

原创 OC中对外不可变、对内实现可变

这里要说明两个问题:1.如何jiang

2014-08-05 22:22:28 1673

原创 Xcode中的编译SDK和运行SDK

在iOS8还没出来的时候,现在需要适配的是iOS6和iOS7。

2014-08-02 17:33:38 4370

原创 XCTest框架定义的常用断言宏

宏s

2014-07-25 11:47:52 1379

原创 Object-C中ARC对象桥接的三个关键字

ARC中Foundation和Core Foundation之间的数据类型zhu

2014-07-11 17:19:24 1099

原创 Object-C语言中的block

Mac系统下有一条命令,是可以将OC代码转换成C/C

2014-06-01 20:20:41 1358

原创 ios开发资料汇总

1.git教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0002.cocoapods教程:http://code4app.com/article/cocoapods-install-usage

2014-04-21 16:47:01 932

转载 C语言整型和字符串之间的转换

C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:    # include     # include      void main (void)    {    int num = 100;    char str[25];    itoa(num, str

2013-09-27 15:32:26 6297

原创 C++排序之堆排序(6)

// HeapSort.cpp : 定义控制台应用程序的入口点。///*堆排序:堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。(1)用大根堆排序的基本思想① 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区② 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由此得到

2013-09-25 12:29:33 918

原创 C++排序之希尔排序(5)

// ShellSort.cpp : 定义控制台应用程序的入口点。///*希尔排序:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。平均时间

2013-09-25 10:50:06 1038

原创 C++排序之插入排序(4)

// InsertSort.cpp : 定义控制台应用程序的入口点。///*插入排序:一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:⒈ 从第一个元素开始,该元素可以认为已经被排序⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置⒌ 将新

2013-09-25 10:13:34 1196

原创 C++排序之选择排序(3)

// SelectSort.cpp : 定义控制台应用程序的入口点。///*选择排序:对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了

2013-09-25 09:35:50 1002

原创 C++排序之快速排序(2)

// QuickSort.cpp : 定义控制台应用程序的入口点。///*快速排序(一趟):1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将值为key的项与A[j]交换;4)从i开始向后搜索,即由前开始向后搜索(i++

2013-09-24 21:03:19 900

原创 C++排序之冒泡排序(1)

// BubbleSort.cpp : 定义控制台应用程序的入口点。///*冒泡排序:相信大家再熟悉不过了。但是现在面试,只有从最简单的写起,一个一个的分析。算法描述:从第0个元素开始,依次往下两两进行比较,如果前面的比后面的大,则把这两个元素交换位置,这样一轮下来最大的元素肯定是在最后了。然后又从0开始,循环到倒数第二个,一直这样循环下去。所以,第一层的循环次数是n-1,第二层的循环

2013-09-24 19:44:54 1198

原创 C++循环链表实现约瑟夫问题

约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“丢手绢问题”)据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3

2013-09-24 16:17:19 3008

原创 C++循环双端队列

要理解循环双端队列,必须将这个名词分开来理解。首先是循环队列,循环对列的top指针指向第一个插入队列的元素,rear指针指向后面插入的元素。并且为了避免“假溢出”,top指针一般指向当前元素的下一个元素,而rear指针则指向当前插入的元素。然后是双端队列,双端队列是在队列的基础之上,头尾都可以进行操作的线性表,也就是说可以在头尾进行删除和插入操作。最后再把这两个概念结合起来,你就能理解

2013-09-23 22:24:03 2755

转载 各个排序的稳定与非稳定分析

(1)冒泡排序冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。(2)选择排序选择排序是给每个位置选择当前元素最小的

2013-09-22 16:11:20 838

原创 在规定次数内找出数组中最大值和最小值

RT:编写一个函数用不多于3n/2的平均比较次数,在一个线性表L中找到最大和最小值的元素。分析:如果在查找最大和最小值的元素时各扫描一遍所有元素,则至少要比较2n次,为此,使用一趟扫描找到最大和最小值的元素才是最优的。算法如下:void maxmin(int array[],int length){ int max,min,i; max = array[0];

2013-09-22 11:09:28 1913

原创 Java中PrintWriter类的println方法。

今天敲了一点java代码,用到了PrintWriter类的println方法,该方法会将打印的字符串后面再加两个字符,分别是:\r\n。所以如果用套接字进行接收println发送过来的字符串,并将接收的字符串与另外一个字符串进行比较的时候,一定记得要把后面两个字符给切掉,不然永远不会相等。

2013-08-04 10:54:27 2940

转载 Java中的提示对话框源代码

1.显示一个错误对话框,该对话框显示的 message 为 'alert':    JOptionPane.showMessageDialog(null, "alert", "alert", JOptionPane.ERROR_MESSAGE);   2.显示一个内部信息对话框,其 message 为 'information':    JOptionPane.showIn

2013-07-31 15:03:20 1929

原创 设计模式简单理解

一、工厂模式:相当于

2013-06-05 17:00:00 824

原创 装饰者模式

// DecorateModel.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;/**装饰者模式:子类 B继承父类A,并在父类提供的接口上调用父类的接口函数。*重点在于,子类B有一个父类A的对象。这样类B的子类则可以根据具体传进来的子类对象,*决定调用哪个类的接口

2013-06-05 16:49:00 942

原创 设计模式基本原则

一、单一职责原则:一个类,只有一个引起它变化的原因。本人理解就是,一个类只做一件事。不然耦合度就会相当高。二、开放-封闭原则:对扩展开放,对修改封闭。因为软件的需求可能随时发生变化,所以设计类的时候应该尽量考虑到各种变化,并提供优秀的扩展性。一旦需求发生变化后,不需要修改原来的代码,只需要增加新的代码就可以了。三、依赖倒置原则:就是要依赖抽象,不依赖具体。就像电脑的接口一样,就比如US

2013-06-04 22:39:26 968

原创 策略模式

经过一个礼拜的休息,重新开始设计模式的学习。今天学习的是策略模式,策略模式运用的就是面向对象的”多态思想“,首先定义一个策略基类,并定义所有的子类需要的接口,然后在基类的基础之下定义具体的策略类。再定义一个上下文(context)类,这个类中只出现策略基类。运用基类的策略基类的指针来指向他的子类,并根据不同策略更改指向的子类。这样就可以选择具体的策略了。从而实现新增加一种策略后只要在c

2013-06-03 16:57:19 995

原创 工厂模式

今天看完设计模式的第一节,工厂模式。现在将源代码写下,记录每一个脚印。工厂模式:用一个工厂类管理其他类。这样代码的灵活性更强。#include #include #include using namespace std;//计算类的基类,所有新计算方式都继承本类,可以让程序灵活性更强。class Calculate{public: Calculate(){}

2013-05-29 16:53:53 859

原创 typename的两个作用

C++中,typename的作用有两个:1.模板中用于引入一个模板参数2.当访问一个类或结构体中的自定义类型的时候,用typename修饰,防止语法歧义。考虑以下代码:templatevoid foo(const T& t){// 声明一个指向某个类型为T::bar的对象的指针 T::bar* p;}struct StructWithBarAsType{ typed

2013-05-24 16:35:38 1135

转载 VS2010快捷键大全

VS2010版快捷键Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 CTRL + SHIFT + C显示类视图窗口 F4 显示属性窗口 SHIFT + F4显示项目属性窗口 C

2013-05-23 09:53:21 1143

转载 C++迭代器类型

STL 主要是由 containers(容器),iterators(迭代器)和 algorithms(算法)的 templates(模板)构成的.       对应于它们所支持的操作,共有五种 iterators(迭代器)。           input         output              \            /

2013-05-21 22:09:33 1655

原创 allocator类

allocator类就像C中的malloca函数,却不像是C中的new关键字,因为new关键字和allocator做的事情不同:1.allocator只是分配内存2.new关键字先分配对象,再构造一个对象。所以说,allocator使得内存分配和创建对象分隔开来了。用allocator类一般需要经过以下几步:1.调用allocator开辟一块内存。2.调用construct

2013-05-21 16:28:35 1505 1

原创 顺序容器list、vector、deque的优劣

list容器的内存不是连续的,相当于链表,这样就可以理解他的特点了:1.可以很方便的对容器中的任意位置进行删除和添加2.因为他的内存分配不是连续的,所以如果要随机访问一个元素,必须从头开始遍历,知道找到合适的元素,所以随机访问一个list容器代价会比较大。vector容器的内存是连续的,相当于数组(本质上他就是数组),所以我们也可以知道他有哪些特点:1.可以很方便的进行

2013-05-20 13:43:14 1446

转载 STL算法大全

STL算法部分主要由头文件,,组成。要使用 STL中的算法函数必须包含头文件,对于数值算法须包含,中则定义了一些模板类,用来声明函数对象。    STL中算法大致分为四类:        1、非可变序列算法:指不直接修改其所操作的容器内容的算法。        2、可变序列算法:指可以修改它们所操作的容器内容的算法。        3、排序算法:包括对序列进行排序和合并的算法、搜索

2013-05-19 15:43:49 1534

班级考勤管理系统

实现学生信息的增、删、改操作。可对班级学生按照课程进行考勤(类别:出勤、迟到、早退、缺席), 并提供按班级、学号、类别进行统计、查询、浏览等功能。 1、源文件采用多文件的工程结构 2、数据存储采用文件形式 3、标准的C输入输出 4.功能完善,非常详细的注释。 5、用VS2010编译

2013-06-04

C++ Primer 第五版.pdf

C++ Primer 第五版 高清 目录超链接

2013-05-20

html语言剖析

一个.exe文件,里面对html的所有知识都挺详细的介绍,并有很丰富的例子,他上面写的照例子你肯定会做的。

2013-05-19

MFC 在线考试系统

自己做的在线考试系统,基于MFC,有文档,有源码,有可执行文件。

2012-09-25

宿舍管理系统

MFC 环境下 用C++ 图形化界面实现宿舍管理系统,有课设文档,需求,详细设计,以及代码等。

2012-09-22

空空如也

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

TA关注的人

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