Ignore:
Timestamp:
Jul 20, 2008, 10:31:12 PM (16 years ago)
Author:
NoWest
Message:

Queueジェネリッククラスを追加
Listジェネリッククラスの内部でメモリの再確保が頻繁に行われないように改良

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/Stack.ab

    r557 r558  
    7272    */
    7373    Function Peek () As T
    74         Peek = This.items[ This.count -1 ]
     74        Peek = This.items[ 0 ]
    7575    End Function
    7676
     
    8181    */
    8282    Function Pop () As T
    83         Pop = This.items[ This.count -1 ]
     83        Pop = This.items[ 0 ]
     84        memmove( items, items + SizeOf(T), (This.count - 1)*SizeOf(T) )
    8485        This.count--
    8586    End Function
     
    9192    */
    9293    Sub Push ( item As T )
    93         This.count++
    94         If This.size < This.count Then
     94        If This.size < (This.count + 1) Then
    9595            This.size++
    9696            Realloc( This.size )
    9797        End If
    98         This.items[ This.count -1 ] = item
     98        memmove( items + SizeOf(T), items, This.count * SizeOf(T) )
     99        items[ 0 ] = item
     100        This.count++
    99101    End Sub
    100102
Note: See TracChangeset for help on using the changeset viewer.