User Tools

Site Tools


final_project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
final_project [2012/03/31 08:25] – [Origin of the Project] xcyanfinal_project [2012/04/06 02:49] (current) – [Origin of Project] xcyan
Line 1: Line 1:
 ==== Final Project(Bees) ===== ==== Final Project(Bees) =====
 ===== Introduction ===== ===== Introduction =====
-==== Name of the Project: Bees ====+==== Name of Project: Bees ====
  
  
Line 13: Line 13:
    TreeMap    TreeMap
  
-==== Origin of the Project ====+==== Origin of Project ====
  
 本次作业Xiao哥的初衷是用C++实现JAVA的STL,关于原本JAVA的STL,大家可以参见 本次作业Xiao哥的初衷是用C++实现JAVA的STL,关于原本JAVA的STL,大家可以参见
Line 19: Line 19:
  
 但注意JAVA和C++有很大不同,所以只能说把JAVA中函数的功能在表面上实现了。就像英语中有些意思中文无法表达,中文的有些意思英文无法表达一样。所以请不要有“我实现了JAVA的STL”这种想法。我们这里注重的是数据结构的使用,STL只是一个包装而已。 但注意JAVA和C++有很大不同,所以只能说把JAVA中函数的功能在表面上实现了。就像英语中有些意思中文无法表达,中文的有些意思英文无法表达一样。所以请不要有“我实现了JAVA的STL”这种想法。我们这里注重的是数据结构的使用,STL只是一个包装而已。
- 
 ==== About Template Class ==== ==== About Template Class ====
  
Line 56: Line 55:
  
 本次大作业的目的是让大家能熟练地掌握本学期所学的几种数据结构:队列、Hash表、平衡树,使用它们去实现在JAVA标准库中的一些集合类Set,Map,List。在我们的压缩包中,将会给出6个库文件,分别是 本次大作业的目的是让大家能熟练地掌握本学期所学的几种数据结构:队列、Hash表、平衡树,使用它们去实现在JAVA标准库中的一些集合类Set,Map,List。在我们的压缩包中,将会给出6个库文件,分别是
-  - arraylist +  - Arraylist 
-  - linkedlist +  - Linkedlist 
-  - hashmap +  - Hashmap 
-  - hashset +  - Hashset 
-  - treemap +  - Treemap 
-  - treeset,+  - Treeset
  
 还有一个比较特殊的文件是utility,这个文件中包含了一些会用到的子类(两个异常类和map的entry),还有一些可能会对大家有帮助的方法,是由一个很萌的助教提供的。在这些库文件中,我们给出了每个类的“接口”(公共方法),而大家所要做的,就是去写出这些类的私有域,并给出这些类的是实现。每个库文件都给出了非常详尽的注释,包括了每个类用什么数据结构实现,每个方法的用途和细节,参考的时间复杂度。还有要注意的是,因为模板类的关系,必须把实现和库文件放在一起。关于原本JAVA的STL,大家可以参见[[http://download.oracle.com/javase/6/docs/api/|JAVA STL]] 还有一个比较特殊的文件是utility,这个文件中包含了一些会用到的子类(两个异常类和map的entry),还有一些可能会对大家有帮助的方法,是由一个很萌的助教提供的。在这些库文件中,我们给出了每个类的“接口”(公共方法),而大家所要做的,就是去写出这些类的私有域,并给出这些类的是实现。每个库文件都给出了非常详尽的注释,包括了每个类用什么数据结构实现,每个方法的用途和细节,参考的时间复杂度。还有要注意的是,因为模板类的关系,必须把实现和库文件放在一起。关于原本JAVA的STL,大家可以参见[[http://download.oracle.com/javase/6/docs/api/|JAVA STL]]
Line 77: Line 76:
 综上,你先要知道你需要什么东西,并马上在私有域中去实现它,在实现的过程中再去发现你还需要什么东西,慢慢地这个类就完整了。   综上,你先要知道你需要什么东西,并马上在私有域中去实现它,在实现的过程中再去发现你还需要什么东西,慢慢地这个类就完整了。  
  
-==== Something to clarify ====+==== Must be clarified ====
  
 === About Iterator === === About Iterator ===
Line 95: Line 94:
         if (index < 0 || index > length)           if (index < 0 || index > length)  
             { throw IndexOutOfBound(); }               { throw IndexOutOfBound(); }  
 +    }
 下面的代码有捕获异常的能力: 下面的代码有捕获异常的能力:
     try       try  
Line 116: Line 116:
 我们在模板构造函数里前加了个explicit,这样做的目的是防止出现自动类型转换(不加问题也不大)。 我们在模板构造函数里前加了个explicit,这样做的目的是防止出现自动类型转换(不加问题也不大)。
  
-==== Q&A ====+===== Q&=====
  
 == 问:为什么要把实现写放到库文件里去 == == 问:为什么要把实现写放到库文件里去 ==
final_project.1333182318.txt.gz · Last modified: 2012/03/31 08:25 by xcyan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki