"Counter" (データ構造)

"Counter"

可変整数カウンタを表す.

詳細

  • 可変整数カウンタは,プログラムの任意部分に含まれる要素の数を数えるのに使うことができる.
  • CreateDataStructure[ "Counter",i]指定の初期値 i を持つ新しい"Counter"を作成する
    Typed[x,"Counter"]x"Counter"型を与える
  • "Counter"型のデータ構造には,以下の演算が使える.
  • ds["AddTo",n]n をカウンタに加え,新しい値を返すtime: O(1)
    ds["Copy"]ds のコピーを返すtime: O(1)
    ds["Decrement"]カウンタを減少させ,古い値を返すtime: O(1)
    ds["Get"]ds に保存されたカウンタの値を得るtime: O(1)
    ds["Increment"]カウンタを増加させ,古い値を返すtime: O(1)
    ds["PreDecrement"]カウンタを減少させ,新しい値を返すtime: O(1)
    ds["PreIncrement"]カウンタを増加させ,新しい値を返すtime: O(1)
    ds["Set",i]ds に保存されたカウンタが i となるように設定するtime: O(1)
    ds["SubtractFrom",n]n をカウンタから引き,新しい値を返すtime: O(1)
    ds["Visualization"]ds の可視化を返すtime: O(1)
  • 以下の関数もサポートする.
  • dsi===dsjdsidsj に等しい場合はTrue
    FullForm[ds]ds の完全形
    Information[ds]ds についての情報
    InputForm[ds]ds の入力形
    Normal[ds]ds を通常の式に変換する

例題

すべて開くすべて閉じる

  (1)

新しい"Counter"は,CreateDataStructureを使って作成できる:

保存された値を抽出する:

カウンタに保存された値を増加させる:

値が更新されたことを確かめる:

式バージョンの ds を返す:

データ構造の可視化を生成することができる:

スコープ  (2)

可変性  (1)

新しい"Counter"のデータ構造を作成し,それを初期化する:

引数が偶数である場合にカウンタをインクリメントする関数を定義する:

式の全要素について関数をスキャンする:

式に含まれる偶数要素の数:

情報  (1)

新しい"Counter"は,CreateDataStructureを使って作成することができる:

データ構造 ds についての情報:

特性と関係  (1)

新しい"Counter"のデータ構造を作成し,それを初期化する:

カウンタを増やすと,古いカウンタの値が返される:

事前にカウンタを増やすと,現在のカウンタの値が返される:

カウンタを設定すると,現在のカウンタの値が返される:

カウンタを追加すると新しい値が返される:

カウンタから引いても新しい値が返される:

考えられる問題  (1)

"Counter"のデータ構造は,64ビットの整数でしか初期化されないことがある: