2010年6月27日
摘要: 七、哈希表(Hash Table)及散列法(Hashing)数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表,哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法——拉链法,我们可以理解为“链表的数组&rdqu... 阅读全文
posted @ 2010-06-27 16:50 chao_yu 阅读(4791) 评论(1) 推荐(3) 编辑
摘要: 六、二分法查找(Binary Search)如何从数组里找一个元素的位置?如果排列是无序的,我们只能从头到尾找,但如果排列是有序的,我们则可以用别的更好的方法,二分查找法就类似我们在英汉词典里找一个单词的方法。如下图所示(假如我们要查找的数字是“88”):下面我给出了一段demo代码,来演示二分查找法比顺序查找快多少,代码为了方便起见,初始化有序表的时候填入的数字都是均匀的... 阅读全文
posted @ 2010-06-27 16:48 chao_yu 阅读(4122) 评论(0) 推荐(1) 编辑
摘要: 五、队(Queue)前一篇讲了栈(Stack),队和栈其实只有一个差别,栈是先进后出,队是先进先出,如图:从图中可以看出,队有两个常用的方法,Enqueue和Dequeue,顾名思义,就是进队和出队了。队和栈一样,既可以用数组实现,也可以用链表实现,我还是偏向于用数组,我的实现示意图如下:队有啥用呢?一个最常用的用途就是“buffer”,即缓冲区,比如有一批从网络来的数据,... 阅读全文
posted @ 2010-06-27 16:45 chao_yu 阅读(2283) 评论(1) 推荐(1) 编辑
摘要: 四、栈(Stack) 前一篇讲解了最基本的东西,这篇就稍微前进一点点,讲一下栈,栈在英文中叫Stack,翻译成中文又叫“堆栈”,但决不能称为“堆”,这个要搞清楚,我们说的“栈”和“堆栈”指的都是Stack这种数据结构,但“堆”却是另外一个概念了,这里且不提。 栈最大特点是先进... 阅读全文
posted @ 2010-06-27 16:37 chao_yu 阅读(4195) 评论(0) 推荐(2) 编辑
2010年6月25日
摘要: 1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector<int>::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector<int>定义的iterator类型。(2) 使用迭代器读取vector中的每一个元素:vector<int>... 阅读全文
posted @ 2010-06-25 10:16 chao_yu 阅读(157443) 评论(3) 推荐(17) 编辑
2010年6月24日
摘要: volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;void t... 阅读全文
posted @ 2010-06-24 10:45 chao_yu 阅读(191034) 评论(12) 推荐(38) 编辑
摘要: 一.线程属性线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。1.名称:pthread_attr_init/pthread_attr_destroy功能:对线程属性初始化/去除初始化头文件:#include <pt... 阅读全文
posted @ 2010-06-24 10:16 chao_yu 阅读(7257) 评论(0) 推荐(3) 编辑
2010年6月23日
摘要: 6.名称:pthread_detach功能:使线程进入分离状态。头文件:#include <pthread.h>函数原形:int pthread_detach(pthread_t tid);参数: 返回值:若成功则返回0,否则返回错误编号。 在默认情况下,线程的终止状态会保存到对该线程调用pthread_join,如果线程已经处于分离状态,线程的底层存储资源可以在线程终止时立即被收回... 阅读全文
posted @ 2010-06-23 10:05 chao_yu 阅读(1557) 评论(0) 推荐(1) 编辑
摘要: 一.什么是线程 在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。 典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。二.线程的优点(1) 通过为每种事件类型的处理分配单独的线程,能够简化处理异步时间的... 阅读全文
posted @ 2010-06-23 09:46 chao_yu 阅读(1849) 评论(0) 推荐(2) 编辑
2010年6月22日
摘要: 一、办理条件本市有固定住所且具备下列条件之一者,均可申请《工作居住证》: (一)具有2年以上工作经历并取得学士(含)以上学位的人才; (二)具有中级(含)以上专业技术职称或相当资格、资质的人才; (三)对首都经济和社会发展做出突出贡献及特殊领域、特殊行业的紧缺急需人才。 二、工作居住证的用途持《工作居住证》在以下方面享受本市市民待遇: (一)其子女在京入托、入中小学就读,免收借读管理费; (二)可... 阅读全文
posted @ 2010-06-22 18:32 chao_yu 阅读(18338) 评论(0) 推荐(1) 编辑