已分類數組

已分類數組

已分類數組類(SortedArray類),SortedArray類是一個有序集成,它在一個數組中存放條目。

基本介紹

  • 中文名:已分類數組
  • 外文名:Sorted array
  • 定義:處理數組內可排序的數據
  • 類型:有序集成
  • 系統:計算機
  • 套用學科:計算機套用
概述,使用已分類數組,

概述

SortedArray類主要用來處理數組內可排序的數據。插入可排序的數據時,SortedArray自動將數據按從小到大的方式排列好且插入數組內。由於此類派生於AbstractArrav類,因此,它也具有AbstractArray類的特性。SortedArray類中常用的成員函式如下:
SortedArray(int upper,int lower=0):聲明SortedArray類的對象,其中數組空間是upper+1。
virtual void add(object&):將一個可排序的對象插入數組內的適當位置。
virtual void detach(const 0bject&,int=0):刪除指定的對象,同時如果第2個參數值不為0,則將此對象“破壞”掉。
virtual classType isA():返回SortedArray類的ID號。
virtual char*nameOf():返回SortedArray類的ID串。
由於SortedArray定義在sortarray.h內,所以要在程式前面加上下列語句:
#include<sortarray.h>

使用已分類數組

一個數組在讀和寫時,通常被認為是可隨機存取的。SortedArray略有區別,因為它不允許元素在隨機單元上插入。只有從Sortable類派生的對象可以插入到一個Sorted Array中。這個類使用::operator<(const Sortable&,const Sortable&)為新對象確定插入下標。SortedArray對插入的對象並不做物理上的存儲,它只存放指向這些對象的指針。構造函式如下:
class Sorted Array :publie AbstractArray{
public:
Sorted Array (int upper,int lower = 0,sizeType aDelta = 0);
該構造函式使用基類AbstractArray的構造函式為一個數組分配存儲空間。如果希望在程式運行時,該數組在分配給它的存儲空間不夠用的情況下能夠動態增長,那么在調用這個構造函式時應該令參數aDelta的值為一非零值。aDelta的值為非零值時允許數組大小每次增長aDelta。
virtual void add(Object&);
該函式把一個對象插入到數組中並且仍保持這個數組的元素按升序存放。排序的順序是由數組中存儲的對象決定的,這要用到全局運算符::operator<(constSortable&,const Sortable&)。如果新插入的對象應該插在數組中某兩個對象之間,而這兩個對象之間已無存儲位置可用,就需要移動數組的元素,以留出位置給新元素。
virtual void detach(Object&,DeleteType=NoDelete);
該函式從排序數組中移去一個對象,然後再壓縮這個數組,這樣就不會留下空的存儲位置。
virtual classType isA()const;
virtual char*nameOf()const;
這兩個函式可用來在程式運行時辨識一個SortedArray對象。第一個函式返回相應於SortedArray類的唯一值,第二個函式返回指向常量字元串“SortedArray”的指針。

相關詞條

熱門詞條

聯絡我們