40节介绍了hash,我们提到,hash有一个重要局限,键值对之间没有特定的顺序,我们还提到,接口有另一个重要的实现类tree,在tree中,键值对之间按键有序,tree的实现基础是排序二叉树,上节我们介绍了排序二叉树的基本概念和算法,本节我们来详细讨论tree。
除了接口,因为有序,tree还实现了更多接口和方法,下面,我们先来看tree的用法,然后探讨其内部实现。
第一个为默认构造方法,如果使用默认构造方法,要求中的键实现arabe接口,tree内部进行各种比较时会调用键的arabe接口中的areto方法。
第二个接受一个比较器对象arator,如果arator不为nu,在tree内部进行比较时会调用这个arator的are方法,而不再调用键的areto方法,也不再要求键实现arabe接口。
应该用哪一个呢第一个更为简单,但要求键实现arabe接口,且期望的排序和键的比较结果是一致的,第二个更为灵活,不要求键实现arabe接口,比较器可以用灵活复杂的方式进行实现。
需要强调的是,tree是按键而不是按值有序,无论哪一种,都是对键而非值进行比较。
40节介绍了hash,我们提到,hash有一个重要局限,键值对之间没有特定的顺序,我们还提到,接口有另一个重要的实现类tree,在tree中,键值对之间按键有序,tree的实现基础是排序二叉树,上节我们介绍了排序二叉树的基本概念和算法,本节我们来详细讨论tree。
除了接口,因为有序,tree还实现了更多接口和方法,下面,我们先来看tree的用法,然后探讨其内部实现。
第一个为默认构造方法,如果使用默认构造方法,要求中的键实现arabe接口,tree内部进行各种比较时会调用键的arabe接口中的areto方法。
第二个接受一个比较器对象arator,如果arator不为nu,在tree内部进行比较时会调用这个arator的are方法,而不再调用键的areto方法,也不再要求键实现arabe接口。
应该用哪一个呢第一个更为简单,但要求键实现arabe接口,且期望的排序和键的比较结果是一致的,第二个更为灵活,不要求键实现arabe接口,比较器可以用灵活复杂的方式进行实现。
需要强调的是,tree是按键而不是按值有序,无论哪一种,都是对键而非值进行比较。
40节介绍了hash,我们提到,hash有一个重要局限,键值对之间没有特定的顺序,我们还提到,接口有另一个重要的实现类tree,在tree中,键值对之间按键有序,tree的实现基础是排序二叉树,上节我们介绍了排序二叉树的基本概念和算法,本节我们来详细讨论tree。
除了接口,因为有序,tree还实现了更多接口和方法,下面,我们先来看tree的用法,然后探讨其内部实现。
第一个为默认构造方法,如果使用默认构造方法,要求中的键实现arabe接口,tree内部进行各种比较时会调用键的arabe接口中的areto方法。
第二个接受一个比较器对象arator,如果arator不为nu,在tree内部进行比较时会调用这个arator的are方法,而不再调用键的areto方法,也不再要求键实现arabe接口。
应该用哪一个呢第一个更为简单,但要求键实现arabe接口,且期望的排序和键的比较结果是一致的,第二个更为灵活,不要求键实现arabe接口,比较器可以用灵活复杂的方式进行实现。
需要强调的是,tree是按键而不是按值有序,无论哪一种,都是对键而非值进行比较。
40节介绍了hash,我们提到,hash有一个重要局限,键值对之间没有特定的顺序,我们还提到,接口有另一个重要的实现类tree,在tree中,键值对之间按键有序,tree的实现基础是排序二叉树,上节我们介绍了排序二叉树的基本概念和算法,本节我们来详细讨论tree。
除了接口,因为有序,tree还实现了更多接口和方法,下面,我们先来看tree的用法,然后探讨其内部实现。
第一个为默认构造方法,如果使用默认构造方法,要求中的键实现arabe接口,tree内部进行各种比较时会调用键的arabe接口中的areto方法。
第二个接受一个比较器对象arator,如果arator不为nu,在tree内部进行比较时会调用这个arator的are方法,而不再调用键的areto方法,也不再要求键实现arabe接口。
应该用哪一个呢第一个更为简单,但要求键实现arabe接口,且期望的排序和键的比较结果是一致的,第二个更为灵活,不要求键实现arabe接口,比较器可以用灵活复杂的方式进行实现。
需要强调的是,tree是按键而不是按值有序,无论哪一种,都是对键而非值进行比较。
40节介绍了hash,我们提到,hash有一个重要局限,键值对之间没有特定的顺序,我们还提到,接口有另一个重要的实现类tree,在tree中,键值对之间按键有序,tree的实现基础是排序二叉树,上节我们介绍了排序二叉树的基本概念和算法,本节我们来详细讨论tree。
除了接口,因为有序,tree还实现了更多接口和方法,下面,我们先来看tree的用法,然后探讨其内部实现。
第一个为默认构造方法,如果使用默认构造方法,要求中的键实现arabe接口,tree内部进行各种比较时会调用键的arabe接口中的areto方法。
第二个接受一个比较器对象arator,如果arator不为nu,在tree内部进行比较时会调用这个arator的are方法,而不再调用键的areto方法,也不再要求键实现arabe接口。
应该用哪一个呢第一个更为简单,但要求键实现arabe接口,且期望的排序和键的比较结果是一致的,第二个更为灵活,不要求键实现arabe接口,比较器可以用灵活复杂的方式进行实现。
需要强调的是,tree是按键而不是按值有序,无论哪一种,都是对键而非值进行比较。
40节介绍了hash,我们提到,hash有一个重要局限,键值对之间没有特定的顺序,我们还提到,接口有另一个重要的实现类tree,在tree中,键值对之间按键有序,tree的实现基础是排序二叉树,上节我们介绍了排序二叉树的基本概念和算法,本节我们来详细讨论tree。
除了接口,因为有序,tree还实现了更多接口和方法,下面,我们先来看tree的用法,然后探讨其内部实现。
第一个为默认构造方法,如果使用默认构造方法,要求中的键实现arabe接口,tree内部进行各种比较时会调用键的arabe接口中的areto方法。
第二个接受一个比较器对象arator,如果arator不为nu,在tree内部进行比较时会调用这个arator的are方法,而不再调用键的areto方法,也不再要求键实现arabe接口。
应该用哪一个呢第一个更为简单,但要求键实现arabe接口,且期望的排序和键的比较结果是一致的,第二个更为灵活,不要求键实现arabe接口,比较器可以用灵活复杂的方式进行实现。
需要强调的是,tree是按键而不是按值有序,无论哪一种,都是对键而非值进行比较。
40节介绍了hash,我们提到,hash有一个重要局限,键值对之间没有特定的顺序,我们还提到,接口有另一个重要的实现类tree,在tree中,键值对之间按键有序,tree的实现基础是排序二叉树,上节我们介绍了排序二叉树的基本概念和算法,本节我们来详细讨论tree。
除了接口,因为有序,tree还实现了更多接口和方法,下面,我们先来看tree的用法,然后探讨其内部实现。
第一个为默认构造方法,如果使用默认构造方法,要求中的键实现arabe接口,tree内部进行各种比较时会调用键的arabe接口中的areto方法。
第二个接受一个比较器对象arator,如果arator不为nu,在tree内部进行比较时会调用这个arator的are方法,而不再调用键的areto方法,也不再要求键实现arabe接口。
应该用哪一个呢第一个更为简单,但要求键实现arabe接口,且期望的排序和键的比较结果是一致的,第二个更为灵活,不要求键实现arabe接口,比较器可以用灵活复杂的方式进行实现。
需要强调的是,tree是按键而不是按值有序,无论哪一种,都是对键而非值进行比较。
40节介绍了hash,我们提到,hash有一个重要局限,键值对之间没有特定的顺序,我们还提到,接口有另一个重要的实现类tree,在tree中,键值对之间按键有序,tree的实现基础是排序二叉树,上节我们介绍了排序二叉树的基本概念和算法,本节我们来详细讨论tree。
除了接口,因为有序,tree还实现了更多接口和方法,下面,我们先来看tree的用法,然后探讨其内部实现。
第一个为默认构造方法,如果使用默认构造方法,要求中的键实现arabe接口,tree内部进行各种比较时会调用键的arabe接口中的areto方法。
第二个接受一个比较器对象arator,如果arator不为nu,在tree内部进行比较时会调用这个arator的are方法,而不再调用键的areto方法,也不再要求键实现arabe接口。
应该用哪一个呢第一个更为简单,但要求键实现arabe接口,且期望的排序和键的比较结果是一致的,第二个更为灵活,不要求键实现arabe接口,比较器可以用灵活复杂的方式进行实现。
需要强调的是,tree是按键而不是按值有序,无论哪一种,都是对键而非值进行比较。
40节介绍了hash,我们提到,hash有一个重要局限,键值对之间没有特定的顺序,我们还提到,接口有另一个重要的实现类tree,在tree中,键值对之间按键有序,tree的实现基础是排序二叉树,上节我们介绍了排序二叉树的基本概念和算法,本节我们来详细讨论tree。
除了接口,因为有序,tree还实现了更多接口和方法,下面,我们先来看tree的用法,然后探讨其内部实现。
第一个为默认构造方法,如果使用默认构造方法,要求中的键实现arabe接口,tree内部进行各种比较时会调用键的arabe接口中的areto方法。
第二个接受一个比较器对象arator,如果arator不为nu,在tree内部进行比较时会调用这个arator的are方法,而不再调用键的areto方法,也不再要求键实现arabe接口。
应该用哪一个呢第一个更为简单,但要求键实现arabe接口,且期望的排序和键的比较结果是一致的,第二个更为灵活,不要求键实现arabe接口,比较器可以用灵活复杂的方式进行实现。
需要强调的是,tree是按键而不是按值有序,无论哪一种,都是对键而非值进行比较。