10 2013 档案
摘要:需要开发一款软件,其中的即时通讯功能使用xmpp协议来做,服务端用openfire。openfire的下载和配置就不多说,可能大多数人第一次用会遇到登陆不了的问题,我也遇到了,事实上登陆错误是因为用的那个邮箱作为登陆名,正确的做法是使用admin作为登陆名,密码用自己设置的密码。openfire是一个使用java实现的基于xmpp协议的开源项目。使用openfire能快速架构一本地通讯测试环境,客户端用的spark测试
阅读全文
摘要:#include #include #include #define random(x) rand()%x #define MAX_LENGTH 10000void printArr(int *arr, int len){ for(int i = 0; i = 0 && array[jter] > current_element) { array[jter+1] = array[jter]; jter--; } array[jter+1] = current_element; } }//快...
阅读全文
摘要:先前被问到@class和#import的区别,我很直白的说使用@class是对要引用的类进行一个声明,不让编译器报错,到后面要用的时候再引入相应的类,而#import则会引入类的所有实例变量和方法。接下来又被问到这样做有什么好处,顿时有点语塞,我只是说这样会效率高一点,至于效率为什么高,什么情况会效率高我自己也没想太清楚。效率问题是编译器只编译头文件,头文件如果使用了太多的#import引入文件,特别是在文件间存在依赖关系的时候,那么有时候一个头文件的改变会使所有依赖该头文件的所有类都重新编译一次,效率低是可想而知的,但是使用@class却不会。
阅读全文
摘要:1 void QuickSort(int *array, int from, int to) 2 { 3 if(from>=to)return; 4 int pivot = array[from]; 5 6 int i = from, j, temp; 7 for(j = from + 1;j <= to;j++) 8 { 9 if(array[j] < pivot) 10 {11 i = i + 1;12 temp = array[i];13 ...
阅读全文
摘要:1 //选择排序 2 void selectionSort(int *array, int num_of_elements) 3 { 4 int iter, jter, minIndex, temp; 5 6 for(iter = 0; iter < num_of_elements; iter++) 7 { 8 minIndex = iter; 9 for(jter = iter + 1; jter < num_of_elements; jter++)10 {11 if(array[jt...
阅读全文
摘要:1 //插入排序 2 #include 3 //先前自己写的 4 void insertionSort01(int *array, int length) 5 { 6 int i = 0, j = 1, k = 0; 7 int temp; 8 9 while(i = 0)14 {15 if(array[k] > array[j])16 {17 temp = array[k];18 array[k] = array[j];19 ...
阅读全文
摘要:练习了一下冒泡排序 1 //冒泡排序 2 #include 3 void bubbleSort01(int *array, int length) 4 { 5 int i, j, temp; 6 for(i = length - 1; i > 0 ; i--) 7 { 8 for(j = 0; j array[j+1])11 {12 temp = array[j];13 array[j] = array[j+1];14 array[...
阅读全文
摘要:先谈一下static, 它是一个存储修饰变量。被static修饰的变量存储在静态数据区,只初始化一次,保持数据的持久性。被static修饰的变量和函数有一个共同点是对其他的源文件不可见。被static修饰的变量默认初始化值为0,因为静态数据区的所有字节内容都是0x00。综上static的作用就是为了隐藏。再说一下const,const的存在是为了取代预编译指令,消除它的缺点,同时继承它的优点。const修饰的常量,具有不可变性,可以实现和宏定义替换类似的功能。
阅读全文

浙公网安备 33010602011771号