ASP 동적 배열은 Add, Insert, Remove, RemoveAt, Search 및 기타 방법을 제공합니다. 효율성 문제에 관계없이 객체를 배열에 저장할 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
클래스 벡터
비공개 벡터_데이터()
Privateinitial_capacity '초기화 용량
전용 용량_increment '용량 증분
Private element_count '요소 수
Private max_capacity '총 용량
비공개 하위 클래스_Initialize()
모두 제거
서브 끝
공용 함수 RemoveAll()
요소_수 = 0
초기 용량 = 10
용량_증분 = 10
max_capacity = 초기_용량
ReDim 벡터_데이터(initial_capacity)
기능 종료
공용 속성 개수 가져오기()
개수 = element_count
끝 속성
공공재산 수용능력 확보()
용량 = max_capacity
끝 속성
공용 속성 GetInitialCapacity()
초기용량=initial_capacity
끝 속성
공용 자산 용량 증분 가져오기()
용량증분 = 용량_증분
끝 속성
공용 기본 속성 항목 가져오기(색인)
IsObject(Vector_datas(index)) 그렇다면
세트 항목 = 벡터_데이터(색인)
또 다른
항목 = 벡터_데이터(색인)
종료 조건
끝 속성
공용 함수 추가(요소)
Insert(element_count, element) 호출
기능 종료
공용 함수 제거(요소)
희미한 지수
색인 = 검색(요소)
제거 위치(색인)
제거=색인
기능 종료
공용 함수 RemoveAt(색인)
나는 어둡다
i = index + 1의 경우 element_count - 1로 1단계
InternalElement(i - 1, vector_datas(i)) 호출
다음
요소_수 = 요소_수 - 1
max_capacity - capacity_increment > element_count 인 경우 그러면
max_capacity = max_capacity - 용량_증분
ReDim 보존 vector_datas(max_capacity)
종료 조건
기능 종료
공개함수 검색(요소)
나는 어둡다
i = 0의 경우 element_count - 1로 1단계
Vector_datas(i) = 요소인 경우 그러면
검색 = 나
종료 기능
종료 조건
다음
검색=-1
기능 종료
공용 함수 삽입(색인, 요소)
index > element_count인 경우
Err.Raise 20903, "벡터", "배열 인덱스가 범위를 벗어났습니다.", "", 0
종료 조건
element_count = 0이면
InternalElement(0, 요소) 호출
ElseIf index = element_count Then
InternalElement(element_count, element) 호출
또 다른
나는 어둡다
i = element_count 인덱스로 + 1 단계 -1
InternalElement(i, vector_datas(i - 1)) 호출
다음
InternalElement(색인, 요소) 호출
종료 조건
요소_수 = 요소_수 + 1
element_count = max_capacity인 경우
max_capacity = 요소_개수 + 용량_증분
ReDim 보존 vector_datas(max_capacity)
종료 조건
기능 종료
공용 함수 SetElementAt(색인, 요소)
인덱스 < 0 또는 인덱스 > element_count - 1인 경우
Err.Raise 20903, "벡터", "배열 인덱스가 범위를 벗어났습니다.", "", 0
종료 조건
InternalElement(색인, 요소) 호출
기능 종료
전용 함수 InternalElement(색인, 요소)
오류 발생 시 다음 재개
IsObject(요소)이면
vector_datas(index) = 요소 설정
또 다른
vector_datas(index) = 요소
종료 조건
Err.Number <> 0이면
MsgBox("벡터 내부 요소 오류: " & vbCrLf & "오류 소스: " & Err.Source & vbCrLf & "오류 번호: " & Err.Number & vbCrLf & "오류 설명: " & Err.Description & vbCrLf)
Err.Clear '오류 정보 지우기
종료 조건
기능 종료
Private Sub Class_Terminate() '클래스 소멸
Erase vector_datas '배열이 차지하는 메모리를 해제하고 각 요소를 Nothing으로 설정합니다.
initial_capacity = 비어 있음
용량_증분 = 비어 있음
element_count = 비어 있음
max_capacity = 비어 있음
서브 끝
수업 종료
이 기사는 CSDN 블로그에서 가져온 것입니다. 재인쇄할 때 출처를 표시해 주세요.