AssignList¶
-
class AssignList : public TpgBase¶
ノードに対する値の割当を記録するクラス
概念的には vector<Assign> と同じ
このクラスのメソッドはすべてソートされていると仮定している.
実際には内部で mDirty というフラグを用意して内容が変更されたら mDirty を true にしておく. 内容を参照する際に mDirty が true なら _sort() を呼ぶ.
参考
Public Functions
-
AssignList() = default¶
コンストラクタ
不正な値となる.
空のリストを作るコンストラクタ
- パラメータ:
network -- [in] 親のネットワーク
as_list -- [in] パックした割り当て情報のリスト
-
AssignList(const AssignList &src) = default¶
コピーコンストラクタ
-
AssignList(AssignList &&src) = default¶
ムーブコンストラクタ
-
AssignList &operator=(const AssignList &src) = default¶
コピー代入演算子
-
AssignList &operator=(AssignList &&src) = default¶
ムーブ代入演算子
-
~AssignList() = default¶
デストラクタ
-
inline void clear()¶
内容を空にする.
-
inline void add(const TpgNode &node, int time, bool val)¶
値を追加する.
- パラメータ:
node -- [in] ノード
val -- /< [in] 時刻 ( 0 or 1 ) [in] 値
-
void merge(const AssignList &src_list)¶
マージする.
矛盾する割当があった場合の動作は不定
- パラメータ:
src_list -- [in] マージするリスト
-
void diff(const AssignList &src_list)¶
差分を計算する.
- パラメータ:
src_list -- [in] 差分の対象のリスト
-
inline SizeType size() const¶
要素数を返す.
-
inline AssignList &operator+=(Assign node_val)¶
add(Assign) の別名
- パラメータ:
node_val -- [in] 追加する要素
-
inline AssignList &operator+=(const AssignList &src_list)¶
merge() の別名
- パラメータ:
src_list -- [in] 追加する要素のリスト
-
inline AssignList &operator-=(const AssignList &src_list)¶
diff() の別名
- パラメータ:
src_list -- [in] 差分の対象のリスト
-
inline AssignList &operator-=(const Assign &src)¶
diff() の別名
- パラメータ:
src -- [in] 差分の対象
-
bool sanity_check() const¶
矛盾した内容になっていないかチェックする.
具体的には同じノードで異なる値がある場合にエラーとなる. この関数はソートされている前提で動作する.
- 戻り値:
正しければ true を返す.
-
inline AssignIter begin() const¶
先頭の反復子を返す.
-
inline AssignIter end() const¶
末尾の反復子を返す.