Home :: GreenPad :: ki :: KTL classes

class gapbuf

^ 
    extends Object as public

基本型専用ギャップバッファ

小耳に挟んだギャップバッファというもの。 ものすごい勘違いをして別物ができているかもしれませんが、 細かいことはあまり気にしないでください。 配列のようにランダムアクセス可能で、 同一箇所への連続した挿入/削除が速いというデータ構造です。 ( 下の図で言うと、gap_startへの挿入/削除にはデータの移動が必要ない )

  D  <--0
  D
  |  <--gap_start
  |
  D  <--gap_end
  D
     <--array_end
	
メモリイメージをそのままコピーしてる実装なので、 プリミティブ型以外では絶対に使わないこと。
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:38
Author:
K.INABA
Version:
beta

Contents

^ 
EntityTypeScopeShort Description
~gapbufdestructor publicundocumented
gapbufconstructor public コンストラクタ
Addmethod public末尾に要素を追加
Addmethod public末尾に要素を追加(複数)
CopyAtmethod public要素コピー
CopyToTailmethod public要素コピー(指定index以降全部)
InsertAtmethod public要素挿入
InsertAtmethod public要素挿入(複数)
operator []operator public要素取得
operator []operator public要素取得(const)
RemoveAllmethod public要素削除(全部)
RemoveAtmethod public要素削除
RemoveToTailmethod public要素削除(指定index以降全部)
sizemethod public要素数

destructor ~gapbuf

? ^  > 
undocumented
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:54
Code:
public ~ gapbuf ( )

constructor gapbuf

? ^  < > 
コンストラクタ
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:52
Param:
alloc_size 最初に確保する"メモリの"サイズ。 "配列の"サイズではないことに注意。
Code:
public explicit gapbuf ( ulong alloc_size = 40 ) : alen_ ( Max ( alloc_size , 10UL ) ) , gs_ ( 0 ) , ge_ ( alen_ ) , buf_ ( new T [ alen_ ] )

method Add

? ^  < > 
末尾に要素を追加
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:80
Code:
public void Add ( const T & x )

method Add

? ^  < > 
末尾に要素を追加(複数)
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:84
Code:
public void Add ( const T * x ,
ulong len )

method CopyAt

? ^  < > 
要素コピー
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:134
Code:
public ulong CopyAt ( ulong i ,
ulong len ,
T * x )

method CopyToTail

? ^  < > 
要素コピー(指定index以降全部)
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:115
Code:
public ulong CopyToTail ( ulong i ,
T * x )

method InsertAt

? ^  < > 
要素挿入
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:64
Code:
public void InsertAt ( ulong i ,
const T & x )

method InsertAt

? ^  < > 
要素挿入(複数)
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:76
Code:
public void InsertAt ( ulong i ,
const T * x ,
ulong len )

operator []

? ^  < > 
要素取得
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:144
Code:
public T & operator [] ( ulong i )

operator []

? ^  < > 
要素取得(const)
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:148
Code:
public const T & operator [] ( ulong i ) const

method RemoveAll

? ^  < > 
要素削除(全部)
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:107
Code:
public void RemoveAll ( )

method RemoveAt

? ^  < > 
要素削除
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:103
Code:
public void RemoveAt ( ulong i ,
ulong len = 1 )

method RemoveToTail

? ^  < > 
要素削除(指定index以降全部)
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:111
Code:
public void RemoveToTail ( ulong i )

method size

? ^  < > 
要素数
Source:
C:\usr\develop\MyProject\GreenPad\kilib\ktlgap.h:140
Code:
public ulong size ( ) const

Created Mon May 06 21:01:05 2002.
This documentation was generated automatically by
ccdoc v0.8 r26 2001/11/28 bin_opt_msvc_MSWin32-4.0.
Click here to submit a bug report or feature request.
Click here to return to the top of the page.