"StringVector" (データ構造)

"StringVector"

文字列のベクトルを表す.

詳細

  • "StringVector"は,文字列のリストまたはベクトルの効率的な不変表現である.
  • CreateDataStructure["StringVector",{s1,}]文字列のリストから新しい"StringVector"を作成する
    Typed[x,"StringVector"]x"StringVector"の型を与える
  • "StringVector"型のデータ構造には,以下の演算が使える.
  • ds["Part",i]dsi 番目の部分を与えるtime: O(1)
    ds["Pick",bvec]"BitVector" bvec の集合ビットに対応する ds の要素を取り出すtime: O(n)
    ds["Join",ds1]dsds1のベクトルを結合するtime: O(n)
    ds["StringByteCount"]ds 内の各文字列要素についてStringByteCountを与えるtime: O(n)
    ds["StringLength"]ds 内の各文字列要素について StringLengthを与えるtime: O(n)
    ds["StringCount",patt]一般的な文字列式 patt について ds の各要素のStringCountを与えるtime: O(n)
    ds["StringMatchQ",patt]StringMatchQ[si,patt]Trueである ds の各要素 si についてビット i 集合を含む"BitVector"を返すtime: O(n)
    ds["StringFreeQ",patt]StringFreeQ[si,patt]Trueである ds の各要素 si についてビット i 集合を含む"BitVector"を返すtime: O(n)
    ds["StringContainsQ",patt]StringContainsQ[si,patt]Trueである ds の各要素 si についてビット i 集合を含む"BitVector"を返すtime: O(n)
    ds["StringStartsQ",patt]StringStartsQ[si,patt]Trueである ds の各要素 si についてビット i 集合を含む"BitVector"を返すtime: O(n)
    ds["StringEndsQ",patt]StringEndsQ[si,patt]Trueである ds の各要素 si についてビット i 集合を含む"BitVector"を返すtime: O(n)
    ds["Visualization"]ds の可視化を返すtime: O(n)
  • 以下の関数もサポートする.
  • dsi===dsjdsidsj に等しい場合はTrue
    FullForm[ds]ds の完全形
    Information[ds]ds についての情報
    InputForm[ds]ds の入力形
    Normal[ds]ds を通常の式に変換する

例題

すべて開くすべて閉じる

  (4)

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

文字列としての3つ目の要素を得る:

最後の3つの要素を"StringVector"として逆順で得る:

結果を文字列のリストに変更する:

各要素について文字列の長さを得る:

各要素について文字列のバイト数を得る:

各要素に含まれる英語の母音の数を数える:

どの要素に"a"の文字が含まれるかを調べる:

それらの要素を取り出す:

"e"の文字を含まない要素を選ぶ:

"StringVector"は通常文字列のリストよりも少ないメモリを使う:

リテラル文字列の検索は,文字列のリストを使うよりも"StringVector"を使う方がずっと速くできることがある:

要素の選択は,文字列のリストを使うよりも"StringVector"を使う方がずっと速くできることがある:

"r"で始まり,"e"で終る"StringVector"要素を選ぶ:

Selectを文字列のリストに使う:

選択されたものは同じである:

スコープ  (1)

情報  (1)

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

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