1

一連の時間範囲 (キー) をオブジェクトにリンクする std::map オブジェクトを設定しています。

重複する 2 つの時間範囲の値をこのマップに追加できないようにすることが私の意図です。重複がある場合に true を返す比較関数を作成し、これを 3 番目の比較テンプレート アイテムとしてstd::マップ。

ただし、範囲ではなく、単一の時点に基づいて値を調べたいと思います。

演算子をオーバーライドする必要があると思いますが、どのアイデアがわかりませんか?

オフィスが閉鎖されようとしていると思うので、少し急ぐ必要があるので、詳細やコードが不足していることをお詫びします。

4

3 に答える 3

1
  1. 単一の値 (時間) を受け入れ、単一のポイントで構成される範囲を生成するコンストラクターを追加します。開始と終了は同じです。

  2. 範囲の operator == をオーバーライドして、範囲が重なっている場合は true を返し、そうでない場合は false を返します。

これで、単一の値 (時間) を渡してキーを検索できます。これは、デフォルトで適切な範囲を構築し、範囲が重複する場合は true を返します。

于 2013-09-11T18:27:39.880 に答える