ASP 動的配列は、Add、Insert、Remove、RemoveAt、Search などのメソッドを提供します。オブジェクトは、効率の問題を考慮せずに配列に格納できます。次のようにコードをコピーします。
クラスベクトル
プライベートvector_datas()
PrivateInitial_capacity '初期化容量
プライベート Capacity_increment ' 容量の増分
Private element_count '要素数
プライベート max_capacity ' 合計容量
プライベートサブクラス_Initialize()
すべて削除
エンドサブ
パブリック関数 RemoveAll()
要素数 = 0
初期容量 = 10
容量増分 = 10
最大容量 = 初期容量
ReDim ベクトルデータ(初期容量)
終了機能
パブリック プロパティ Get Count()
カウント = 要素数
終了プロパティ
パブリック プロパティ Get Capacity()
容量 = max_capacity
終了プロパティ
Public プロパティ GetInitialCapacity()
InitialCapacity = 初期容量
終了プロパティ
Public プロパティ Get CapacityIncrement()
容量増分 = 容量_増分
終了プロパティ
パブリックデフォルトプロパティ GetItem(index)
IsObject(vector_datas(index)) の場合
項目を設定 = Vector_datas(index)
それ以外
項目 = ベクトルデータ(インデックス)
終了の場合
終了プロパティ
パブリック関数 Add(要素)
Insert(element_count, element) を呼び出す
終了機能
パブリック関数 Remove(要素)
薄暗いインデックス
インデックス = 検索(要素)
RemoveAt(インデックス)
削除=インデックス
終了機能
パブリック関数 RemoveAt(index)
ディムアイ
For i = インデックス + 1 To element_count - 1 ステップ 1
InternalElement(i - 1, Vector_datas(i)) を呼び出す
次
要素数 = 要素数 - 1
max_capacity - Capacity_increment > element_count の場合
max_capacity = max_capacity - Capacity_increment
ReDim Preserve Vector_datas(max_capacity)
終了の場合
終了機能
パブリック関数検索(要素)
ディムアイ
i = 0 から element_count - 1 まで ステップ 1
Vector_datas(i) = 要素の場合
検索 = i
終了関数
終了の場合
次
検索 = -1
終了機能
パブリック関数 Insert(インデックス、要素)
インデックス > element_count の場合
Err.Raise 20903、ベクトル、配列インデックスが範囲外です。、、0
終了の場合
element_count = 0 の場合
InternalElement(0, 要素) を呼び出す
ElseIf インデックス = element_count then
InternalElement(element_count, element) を呼び出す
それ以外
薄暗い私
For i = element_count インデックスへ + 1 ステップ -1
InternalElement(i, Vector_datas(i - 1)) を呼び出す
次
InternalElement(インデックス, 要素) を呼び出す
終了の場合
要素数 = 要素数 + 1
element_count = max_capacity の場合
max_capacity = 要素数 + 容量増分
ReDim Preserve Vector_datas(max_capacity)
終了の場合
終了機能
パブリック関数 SetElementAt(インデックス, 要素)
インデックス < 0 またはインデックス > element_count - 1 の場合
Err.Raise 20903、ベクトル、配列インデックスが範囲外です。、、0
終了の場合
InternalElement(インデックス, 要素) を呼び出す
終了機能
プライベート関数 InternalElement(インデックス, 要素)
エラー時は次へ再開
IsObject(要素)の場合
Vector_datas(index) = 要素を設定します
それ以外
Vector_datas(インデックス) = 要素
終了の場合
Err.Number <> 0 の場合、次に
MsgBox(Vector InternalElement エラー: & vbCrLf & エラー ソース: & Err.Source & vbCrLf & エラー番号: & Err.Number & vbCrLf & エラーの説明: & Err.Description & vbCrLf)
Err.Clear 'エラー情報をクリア
終了の場合
終了機能
Private Sub Class_Terminate() 'クラスの破壊
Erase Vector_datas '配列が占有しているメモリを解放し、各要素を何も設定しません
初期容量 = 空
容量増分 = 空
element_count = 空
max_capacity = 空
エンドサブ
終了クラス
この記事は CSDN ブログからのものです。転載する場合は出典を明記してください: http://blog.csdn.net/o1o2o3o4o5/archive/2009/10/20/4703033.aspx