摘要:
网络的OSI模型,每层的主要内容给出示例代码,如何限制一个类只在堆上分配和栈上分配1、限制一个类只在堆上分配仿照设计模式中的单例模式或者工厂模式来解决,这里采用单实例模式方式来说明。将类的构造函数属性置为private,同时提供static成员函数getInstance,在函数中new一个新对象,然后返回对象指针或者引用。这样实现的类可以保证只可以在堆上分配对象。// 私有化析构函数,通过一个public函数来进行实际的析构。class B{ public: void del()const{ }; private: ~B(){};};2、... 阅读全文
摘要:
一、loadView在不使用xib创建视图时,分两种情况。第一、实现文件中不重载改方法,则该方法的默认操作是创建一个UIView给当前VC的view。第二、重建该方法,则必须要在该方法中新建一个UIView给当前VC的view,并且重写该函数时不应该调用super。在该函数中可以加载一些控件,但是不建议再此处添加。- (void)loadView{ // If you create your views manually, you MUST override this method and use it to create your views. // If you use Int... 阅读全文
摘要:
内存分区:1)、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2)、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。(ios中alloc都是存放在堆中)3)、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放。注意:全局区又可分为未初始化全局区:.bss段和初始化全局区:data段。4)、常量区—常量字符串就是放在这里的。 程序结束后由系统释 阅读全文
摘要:
M字符串找N子字符串算法的时间复杂度如何计算?[时间复杂度]整个算法的执行时间与基本操作重复执行的次数成正比。参考kmp算法,该算法的时间复杂度为Q(N),通常,模式串的长度n比主串的长度m要小的多几种排序算法中,哪几个是稳定的?[稳定排序]排序前后,数值的相对前后位置不变的为稳定排序,否则为不稳定排序。1、简单排序,时间复杂度O(n的平方),不稳定2、快速排序,时间复杂度O(nlogn),性能最佳,不稳定3、堆排序,时间复杂度O(nlogn),不稳定4、归并排序,时间复杂度O(nlogn),不稳定5、基数排序,时间复杂度O(d(n+rd)),稳定排序,平衡二叉树插入新节点后,新的平衡二叉树是 阅读全文
摘要:
参考:http://www.cnblogs.com/duchengdong/archive/2012/03/30/2425300.html1、main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); } 答案:2、5分析:*(a+1)即a[1],为2;&a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int) int *ptr=(int *)(&a+1); 则ptr实际是&(a[5]),也 阅读全文