Das dynamische ASP-Array bietet die Methoden „Hinzufügen“, „Einfügen“, „Entfernen“, „RemoveAt“, „Suchen“ und andere. Objekte können unabhängig von Effizienzproblemen in Arrays gespeichert werden
Kopieren Sie den Codecode wie folgt:
Klassenvektor
Private vector_datas()
Private initial_capacity 'Initialisierungskapazität
Private Capacity_inkrement 'Kapazitätserhöhung
Private element_count 'Anzahl der Elemente
Private max_capacity 'Gesamtkapazität
Private Sub Class_Initialize()
Alles entfernen
Sub beenden
Öffentliche Funktion RemoveAll()
element_count = 0
initial_capacity = 10
Kapazitätsinkrement = 10
max_capacity = initial_capacity
ReDim vector_datas(initial_capacity)
Funktion beenden
Öffentliches Eigentum Get Count()
Anzahl = element_count
End-Eigenschaft
Öffentliches Eigentum Get Capacity()
Kapazität = max_capacity
End-Eigenschaft
Öffentliche Eigenschaft GetInitialCapacity()
InitialCapacity = initial_capacity
End-Eigenschaft
Öffentliche Eigenschaft Get CapacityIncrement()
CapacityInkrement = Kapazitätsinkrement
End-Eigenschaft
Öffentliche Standardeigenschaft „Get Item(index)“
Wenn IsObject(vector_datas(index)) Dann
Set Item = vector_datas(index)
Anders
Item = vector_datas(index)
Ende wenn
End-Eigenschaft
Öffentliche Funktion Add(element)
Call Insert(element_count, element)
Funktion beenden
Öffentliche Funktion Remove(element)
Dunkler Index
index = Suche (Element)
RemoveAt(index)
Entfernen=Index
Funktion beenden
Öffentliche Funktion RemoveAt(index)
Dim ich
Für i = index + 1 bis element_count - 1 Schritt 1
Rufen Sie InternalElement(i - 1, vector_datas(i)) auf.
Nächste
element_count = element_count - 1
Wenn max_capacity - Capacity_increment > element_count Dann
max_capacity = max_capacity – Kapazitätsinkrement
ReDim Preserve vector_datas(max_capacity)
Ende wenn
Funktion beenden
Öffentliche Funktionssuche (Element)
Dim ich
Für i = 0 bis element_count - 1 Schritt 1
Wenn vector_datas(i) = element Dann
Suche = i
Exit-Funktion
Ende wenn
Nächste
Suche=-1
Funktion beenden
Öffentliche Funktion Einfügen (Index, Element)
Wenn index > element_count Dann
Err.Raise 20903, „Vector“, „Array-Index außerhalb der Grenzen.“, „“, 0
Ende wenn
Wenn element_count = 0, dann
Aufruf InternalElement(0, element)
ElseIf index = element_count Then
Aufruf InternalElement(element_count, element)
Anders
Dim ich
Für i = element_count Zum Index + 1 Schritt -1
Rufen Sie InternalElement(i, vector_datas(i - 1)) auf.
Nächste
Aufruf InternalElement(index, element)
Ende wenn
element_count = element_count + 1
Wenn element_count = max_capacity Dann
max_capacity = element_count + Capacity_increment
ReDim Preserve vector_datas(max_capacity)
Ende wenn
Funktion beenden
Öffentliche Funktion SetElementAt(index, element)
Wenn index < 0 oder index > element_count - 1, dann
Err.Raise 20903, „Vector“, „Array-Index außerhalb der Grenzen.“, „“, 0
Ende wenn
Aufruf InternalElement(index, element)
Funktion beenden
Private Funktion InternalElement(index, element)
Bei Fehler Weiter fortsetzen
Wenn IsObject(element) Dann
Setze vector_datas(index) = element
Anders
vector_datas(index) = Element
Ende wenn
Wenn Err.Number <> 0, dann
MsgBox("Vector InternalElement Error: " & vbCrLf & "Fehlerquelle: " & Err.Source & vbCrLf & "Fehlernummer: " & Err.Number & vbCrLf & "Fehlerbeschreibung: " & Err.Description & vbCrLf)
Err.Clear 'Fehlerinformationen löschen
Ende wenn
Funktion beenden
Private Sub Class_Terminate() 'Klassenzerstörung
Erase vector_datas 'Gib den vom Array belegten Speicher frei und setze jedes Element auf Nichts
initial_capacity = Leer
Capacity_increment = Leer
element_count = Leer
max_capacity = Leer
Sub beenden
Unterricht beenden
Dieser Artikel stammt aus dem CSDN-Blog. Bitte geben Sie beim Nachdruck die Quelle an: