コンテナ

この節ではコンテナを規定する。コンテナとは、複数の値を格納することができる値である。パステルステッチのコンテナはカプセルである。提供されるコンテナはベクター、セット、マップの 3 種類である。すでに「ベクトル」と「集合」という用語が別の意味で使われていて紛らわしいため、コンテナは「ベクターコンテナ」および「セットコンテナ」と呼んで区別する。対称性のため、マップも「マップコンテナ」と呼ぶ。

比較器

比較器 (comparer) は値の大小を比較するコンティニュエーションである。セットコンテナまたはマップコンテナを生成するとき、比較器を指定することができる。比較器を指定しなければ lessmain プリミティブ演算が使われる。

比較器は left コンティニュエーション引数と right コンティニュエーション引数を受け取る。また、come from コンティニュエーション引数には終端コンティニュエーションが渡される。比較器は、終端要因が終端コンティニュエーションであり、main 引数の値が true または false である引数解決で終了する必要がある。left コンティニュエーション引数が right コンティニュエーション引数よりも小さければ true を、そうでなければ false を、終端コンティニュエーションの main 引数で返す必要がある。

ベクターコンテナ

make vector containermain プリミティブ演算は空のベクターコンテナを返す。

ベクターコンテナは以下のメソッドディスクリプターを使用できる。

メソッドディスクリプター 引数とその型 戻り値の型
typemain main (ベクトル) ブーリアン
copymain main (ベクターコンテナ) ベクターコンテナ
assignmain main (ベクターコンテナ) なし
sizemain なし 自然数
resizemain 自然数 なし
getmain main (自然数) 任意の値
setmain index (自然数), value (任意の値) なし
push backmain main (任意の値) なし
pop backmain なし なし
clearmain なし なし
sortmain main (比較器) なし

type メソッドは main 引数が vector containermain 有名ベクトルであれば true を返す。

copy メソッドはベクターコンテナのコピーを作成して返す。

assign メソッドはベクターコンテナの内容を置き換える。

get メソッドは指定されたインデックスの値を返す。範囲外のインデックスが指定された場合の動作は実装により異なる。

set メソッドは指定されたインデックスに値を格納する。範囲外のインデックスが指定された場合の動作は実装により異なる。

sort メソッドはベクターコンテナをソートする。

他のメソッドは STL (Standard Template Library) の同名のメンバー関数に従う。

セットコンテナ

make set containermain プリミティブ演算は空のセットコンテナを返す。このプリミティブ演算の main 引数は省略可能で、省略しないならば比較器である必要がある。

セットコンテナは以下のメソッドディスクリプターを使用できる。

メソッドディスクリプター 引数とその型 戻り値の型
typemain main (ベクトル) ブーリアン
copymain main (セットコンテナ) セットコンテナ
assignmain main (セットコンテナ) なし
assignmain main (有限集合) なし
beginmain なし イテレーター
endmain なし イテレーター
sizemain なし 自然数
insertmain main (任意の値) なし
insertmain 1 (イテレーター) 2 (イテレーター) なし
erasemain main (イテレーター) イテレーター
erasemain main (任意の値) なし
erasemain 1 (イテレーター) 2 (イテレーター) イテレーター
clearmain なし なし
findmain main (任意の値) イテレーター

type メソッドは main 引数が set containermain 有名ベクトルであれば true を返す。

copy メソッドはセットコンテナのコピーを作成して返す。

assign メソッドはセットコンテナの内容を置き換える。

他のメソッドは STL の同名のメンバー関数に従う。

マップコンテナ

get map containermain プリミティブ演算は空のマップコンテナを返す。このプリミティブ演算の main 引数は省略可能で、省略しないならば比較器である必要がある。

マップコンテナは以下のメソッドディスクリプターを使用できる。

メソッドディスクリプター 引数とその型 戻り値の型
typemain main (ベクトル) ブーリアン
copymain main (マップコンテナ) マップコンテナ
assignmain main (マップコンテナ) なし
beginmain なし イテレーター
endmain なし イテレーター
sizemain なし 自然数
getmain key (任意の値) 任意の値
setmain key (任意の値), value (任意の値) なし
insertmain 1 (イテレーター) 2 (イテレーター) なし
erasemain main (イテレーター) イテレーター
erasemain main (任意の値) なし
erasemain 1 (イテレーター) 2 (イテレーター) イテレーター
clearmain なし なし
findmain main (任意の値) イテレーター

type メソッドは main 引数が map containermain 有名ベクトルであれば true を返す。

copy メソッドはセットコンテナのコピーを作成して返す。

assign メソッドはセットコンテナの内容を置き換える。

get メソッドは指定されたキーに対応する値を返す。指定されたキーが使用されていない場合の動作は実装により異なる。

set メソッドは指定されたキーに値を格納する。指定されたキーがすでに使用されている場合は、値を上書きする。指定されたキーが使用されていない場合は、キーと値を追加する。

他のメソッドは STL の同名のメンバー関数に従う。

イテレーター

イテレーターは以下のメソッドディスクリプターを使用できる。

メソッドディスクリプター 引数とその型 戻り値の型
typemain main (ベクトル) ブーリアン
copymain main (イテレーター) イテレーター
assignmain main (イテレーター) なし
getmain なし 任意の値
get keymain なし 任意の値
get valuemain なし 任意の値
set valuemain 任意の値 なし
go forwardmain なし なし
go backmain なし なし
{=} main (イテレーター) ブーリアン

type メソッドは main 引数の値が iteratormain であれば true を返す。

copy メソッドはイテレーターのコピーを返す。

assign メソッドはイテレーターの内容を main 引数のものに置き換える。

get メソッドはイテレーターがセットコンテナに属する場合に使用できる。

get key, get value, set value メソッドはイテレーターがマップコンテナに属する場合に使用できる。

go forward メソッドと go back メソッドはイテレーターを進めるか戻す。

他のメソッドは STL の同名のメンバー関数に従う。