La matriz dinámica ASP proporciona Agregar, Insertar, Eliminar, RemoveAt, Buscar y otros métodos. Los objetos se pueden almacenar en matrices independientemente de los problemas de eficiencia.
Copie el código de código de la siguiente manera:
Vector de clase
vector_datas privado()
Private initial_capacity 'Capacidad de inicialización
Incremento de capacidad privado 'Incremento de capacidad
Private element_count 'Número de elementos
Capacidad total privada max_capacity '
Subclase privada_Initialize()
Eliminar todo
Subtítulo final
Función pública Eliminar todo()
recuento_elementos = 0
capacidad_inicial = 10
incremento_capacidad = 10
capacidad_max = capacidad_inicial
ReDim vector_datas(capacidad_inicial)
Función final
Propiedad pública Obtener recuento()
Recuento = elemento_recuento
Propiedad final
Capacidad de obtención de propiedad pública()
Capacidad = capacidad_máxima
Propiedad final
Propiedad pública GetInitialCapacity()
CapacidadInicial = capacidad_inicial
Propiedad final
Propiedad pública Obtener Incremento de capacidad()
Incremento de capacidad = incremento_capacidad
Propiedad final
Propiedad pública predeterminada Obtener elemento (índice)
Si IsObject (vector_datas (índice)) Entonces
Establecer elemento = vector_datas(índice)
Demás
Elemento = vector_datas(índice)
Terminar si
Propiedad final
Agregar función pública (elemento)
Llamar a Insertar (element_count, elemento)
Función final
Función pública Eliminar (elemento)
índice tenue
índice = Buscar (elemento)
Eliminar en (índice)
Eliminar = índice
Función final
Función pública RemoveAt(índice)
Yo tenue
Para i = índice + 1 Para element_count - 1 Paso 1
Llamar a InternalElement(i - 1, vector_datas(i))
Próximo
recuento_elementos = recuento_elementos - 1
Si max_capacidad - incremento_capacidad > recuento_elementos Entonces
capacidad_max = capacidad_max - incremento_capacidad
ReDim Preservar vector_datas(max_capacity)
Terminar si
Función final
Búsqueda de función pública (elemento)
Yo tenue
Para i = 0 Para element_count - 1 Paso 1
Si vector_datas(i) = elemento Entonces
Buscar = yo
Función de salida
Terminar si
Próximo
Buscar=-1
Función final
Insertar función pública (índice, elemento)
Si índice > element_count Entonces
Err.Raise 20903, "Vector", "Índice de matriz fuera de límites.", "", 0
Terminar si
Si element_count = 0 Entonces
Llamar a InternalElement(0, elemento)
De lo contrario, si índice = element_count, entonces
Llamar a InternalElement(element_count, elemento)
Demás
Yo tenue
Para i = element_count Para indexar + 1 Paso -1
Llamar a InternalElement(i, vector_datas(i - 1))
Próximo
Llamar a InternalElement (índice, elemento)
Terminar si
recuento_elementos = recuento_elementos + 1
Si element_count = max_capacity Entonces
capacidad_max = recuento_elementos + incremento_capacidad
ReDim Preservar vector_datas(max_capacity)
Terminar si
Función final
Función pública SetElementAt(índice, elemento)
Si índice <0 O índice> element_count - 1 Entonces
Err.Raise 20903, "Vector", "Índice de matriz fuera de límites.", "", 0
Terminar si
Llamar a InternalElement (índice, elemento)
Función final
Función privada Elemento interno (índice, elemento)
En caso de error Continuar siguiente
Si esObjeto(elemento) Entonces
Establecer vector_datas(índice) = elemento
Demás
vector_datas(índice) = elemento
Terminar si
Si Número de error <> 0 Entonces
MsgBox("Error de elemento interno de vector: " & vbCrLf & "Fuente del error: " & Err.Source & vbCrLf & "Número de error: " & Err.Number & vbCrLf & "Descripción del error: " & Err.Description & vbCrLf)
Err.Clear 'Borrar información de error
Terminar si
Función final
Private Sub Class_Terminate() 'Destrucción de clase
Borrar vector_datas 'Libera la memoria ocupada por la matriz y establece cada elemento en Nada
capacidad_inicial = Vacío
incremento_capacidad = Vacío
element_count = vacío
max_capacity = vacío
Subtítulo final
Fin de clase
Este artículo proviene del blog de CSDN. Indique la fuente al reimprimir: