Loading...
如果文章对您有用,麻烦顺手点一下文章的广告吧~
#include <iostream> using namespace std; typedef char ElemType;//定义char类型的ElemType,方便修改 typedef struct LNode//定义一个结构体 { ElemType data;//链表数据区 LNode *next;//链表指针区 }LinkList; ...
#include <iostream> using namespace std; //打印选项 void printTheSelect() { cout<<"\n1.初始化双向链表 2.打印双向链表\n3.逆序打印双向链表\n"; cout<<"4.求链表长度 5.判断链表是否为空\n6.清空链表\n"; cout...
设计模式是编程的重点,往往在面试时都会考查,而单例模式是最为简单、最为常见、也最该掌握的模式。所以面试时对设计模式的考查考的最多的就是单例模式。下面我们就来看看单例模式如何实现(C++代码):#include<iostream> using namespace std; class Singleton { public: s...
assign: 简单赋值,不更改索引计数copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1Copy其实是建立了一个相同的对象,而retain不是:比如一个NSString对象,地址为0×1111,内容为@”STR”Copy到另外一个NSString之 后,地址为0×2222,内容相同,新的对象retain为...
NSArray是静态的数组,就是它所指向的内容是不可改变的,它指向一段内存区域,一旦初始化,不能通过它对该内存区域的数据进行修改操作,但是它可以读数据。NSMutableArray是动态的是NSArray的子类,可以对所指向的内存区域内容进行更改,并可以增加数组内容NSArray和NSmutableArray的第一个数据的下标为0。******************************...
Objective-C 支持的类型有两种:基本类型 和 类。基本类型,如同C 语言中的 int 类型一样,拿来就可以直接用。 而类在使用时,必须先创建一个对象,再为对象分配空间,接着做初始化和赋值。 类的初始化,需用类自身的方法 (类方法)。 代码中所创建的对象,不用后,还得记着释放。做了这么多铺垫, 具体到 NSNumber 和 NSInteger ,又怎样呢?NSNumber 是类, 而...
self相当于c++里面的this,表示类的对象本身。加个self.是为了调用对应的set方法,如果不加,就不调用,不掉用就会造成引用计数的retainCount不加一,不加一就会被直接释放,结果就是在数据源那个方法中得到空值,没法使用,程序崩溃。所以需要调用对应的方法就加上self. ,不需要就不加。例:- (void)viewDidLoad { [super viewDidL...
虽然ARC引入之后NSAutoReleasePool的使用有了很大变化,但是了解NSAutoReleasePool的机制还是十分必要的,下面主要说一下:NSAutoReleasePool * pool = [NSAutoReleasePool alloc] init];//do something[pool drain] 和 [pool release] 的区别:release,在引用计数环...
1.#import和#include的区别是#import已经内置了条件预编译,防止重复包含,而#include则是需要手动使用#ifndef……#define……#endif;来实现前置声明2.objective-c内存管理原则当使用new、alloc或copy方法创建一个对象时,该对象引用计数器为1。如果不需要使用该对象,可以向其发送release或autorelease消息,在其使用完...
在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。假设b=2,c=7,d=5,a1=(++b,c--,d+3)a2=++b,c--,d+3对于第一行代码,有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是d+3,为8,所以a1=8。对于第二行代码,那么也是有三个表达式,这时的三个表达式为a2=++b、c--、d...