asp 動態(tài)數(shù)組 提供Add、Insert、Remove、RemoveAt、Search等方法。
更新時間:2009年10月20日 21:52:33 作者:
asp動態(tài)數(shù)組,提供Add、Insert、Remove、RemoveAt、Search等方法??梢栽跀?shù)組中存儲對象不考慮效率問題
復(fù)制代碼 代碼如下:
Class Vector
Private vector_datas()
Private initial_capacity '初始化容量
Private capacity_increment '容量增量
Private element_count '元素數(shù)
Private max_capacity '總?cè)萘?
Private Sub Class_Initialize()
RemoveAll
End Sub
Public Function RemoveAll()
element_count = 0
initial_capacity = 10
capacity_increment = 10
max_capacity = initial_capacity
ReDim vector_datas(initial_capacity)
End Function
Public Property Get Count()
Count = element_count
End Property
Public Property Get Capacity()
Capacity = max_capacity
End Property
Public Property Get InitialCapacity()
InitialCapacity = initial_capacity
End Property
Public Property Get CapacityIncrement()
CapacityIncrement = capacity_increment
End Property
Public Default Property Get Item(index)
If IsObject(vector_datas(index)) Then
Set Item = vector_datas(index)
Else
Item = vector_datas(index)
End If
End Property
Public Function Add(element)
Call Insert(element_count, element)
End Function
Public Function Remove(element)
Dim index
index = Search(element)
RemoveAt(index)
Remove = index
End Function
Public Function RemoveAt(index)
Dim i
For i = index + 1 To element_count - 1 Step 1
Call InternalElement(i - 1, vector_datas(i))
Next
element_count = element_count - 1
If max_capacity - capacity_increment > element_count Then
max_capacity = max_capacity - capacity_increment
ReDim Preserve vector_datas(max_capacity)
End If
End Function
Public Function Search(element)
Dim i
For i = 0 To element_count - 1 Step 1
If vector_datas(i) = element Then
Search = i
Exit Function
End If
Next
Search = -1
End Function
Public Function Insert(index, element)
If index > element_count Then
Err.Raise 20903, "Vector", "Array Index Out Of Bounds.", "", 0
End If
If element_count = 0 Then
Call InternalElement(0, element)
ElseIf index = element_count Then
Call InternalElement(element_count, element)
Else
Dim i
For i = element_count To index + 1 Step -1
Call InternalElement(i, vector_datas(i - 1))
Next
Call InternalElement(index, element)
End If
element_count = element_count + 1
If element_count = max_capacity Then
max_capacity = element_count + capacity_increment
ReDim Preserve vector_datas(max_capacity)
End If
End Function
Public Function SetElementAt(index, element)
If index < 0 Or index > element_count - 1 Then
Err.Raise 20903, "Vector", "Array Index Out Of Bounds.", "", 0
End If
Call InternalElement(index, element)
End Function
Private Function InternalElement(index, element)
On Error Resume Next
If IsObject(element) Then
Set vector_datas(index) = element
Else
vector_datas(index) = element
End If
If Err.Number <> 0 Then
MsgBox("Vector InternalElement Error: " & vbCrLf & "Error Source: " & Err.Source & vbCrLf & "Error Number: " & Err.Number & vbCrLf & "Error Description: " & Err.Description & vbCrLf)
Err.Clear '清除錯誤信息
End If
End Function
Private Sub Class_Terminate() '類銷毀
Erase vector_datas '釋放數(shù)組占用的內(nèi)存, 將每個元素都設(shè)為 Nothing
initial_capacity = Empty
capacity_increment = Empty
element_count = Empty
max_capacity = Empty
End Sub
End Class
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/o1o2o3o4o5/archive/2009/10/20/4703033.aspx
您可能感興趣的文章:
- asp取得數(shù)組中的最大值的方法
- asp下使用數(shù)組存放數(shù)據(jù)的代碼
- asp 得到動態(tài)數(shù)組中元素的個數(shù)
- asp.net 數(shù)組中字符串替換的幾種方式
- asp.net 字符串、二進(jìn)制、編碼數(shù)組轉(zhuǎn)換函數(shù)
- asp.net通過js實(shí)現(xiàn)Cookie創(chuàng)建以及清除Cookie數(shù)組的代碼
- asp textarea 多行數(shù)組分割處理方法
- asp 數(shù)組 重復(fù)刪除函數(shù)(腳本之家增強(qiáng)版)
- ASP 過濾數(shù)組重復(fù)數(shù)據(jù)函數(shù)(加強(qiáng)版)
- ASP 使用Filter函數(shù)來檢索數(shù)組的實(shí)現(xiàn)代碼
- asp數(shù)組的使用介紹
- Asp與JS的數(shù)組和字符串下標(biāo)介紹
- asp中使用redim、preserve創(chuàng)建動態(tài)數(shù)組實(shí)例
- ASP定義數(shù)組方法的技巧
相關(guān)文章
ASP checkbox復(fù)選框是否被選中的代碼(結(jié)合數(shù)據(jù)庫)
ASP從數(shù)據(jù)庫中讀出復(fù)選框是否被選中的代碼2010-06-06ASP移動文件函數(shù)movefile權(quán)限不足的替代方法
這篇文章主要介紹了ASP移動文件函數(shù)movefile權(quán)限不足的替代方法,本文先是介紹了一個替代方法,后又找出了實(shí)際原因,需要的朋友可以參考下2014-07-07實(shí)例分析之用ASP編程實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)容快速查找的代碼
實(shí)例分析之用ASP編程實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)容快速查找的代碼...2007-03-03asp簡單生成靜態(tài)的方法(模板標(biāo)簽替換)
asp簡單生成靜態(tài)的方法,今天看了詞典工具里面的代碼,比較簡單,需要的朋友可以參考下。2011-03-03asp連接SQL和Access數(shù)據(jù)代碼(asp里的隨機(jī)函數(shù))
asp連接SQL和Access數(shù)據(jù)代碼,asp里的隨機(jī)函數(shù),需要的朋友可以參考下2012-09-09asp+jsp+JavaScript動態(tài)實(shí)現(xiàn)添加數(shù)據(jù)行
這篇文章主要介紹了asp+jsp+JavaScript動態(tài)實(shí)現(xiàn)添加數(shù)據(jù)行,實(shí)現(xiàn)過程很詳細(xì),整個思路清晰,感興趣的小伙伴們可以參考一下2015-09-09ASP轉(zhuǎn)換格林威治時間函數(shù)DateDiff()應(yīng)用
ASP提供了一個叫 DateDiff() 的函數(shù),這個函數(shù)可以返回一個時間差的秒,那就是說我們放進(jìn)去一個格林威治標(biāo)準(zhǔn)時間與現(xiàn)在的時間對比一下返回秒就OK2014-06-06