- C++相談室 part127 [無断転載禁止]©2ch.net
694 :691 (ワイモマー MM8f-5NgJ)[sage]:2016/11/16(水) 23:27:11.73 ID:/Uxm/UCLM - お二方、レスありがとう。チョット気になっているのは、簡略化して書くと
以下のようなコードで struct S { double x, y, z; ... bool operator < (const S& rhs) const { if (x < rhs.x) { return true; } if (x > ... } }; std::map<Struct S, int> mp; mp[{1.,2.,3.}] = 3; ...その他いろんな値を設定; auto it = mp.find({4.,5.,6.}); if (it != mp.end()) { it->second = 4.,5.,6.に対応する新しい値; } else { mp.find({4.,5.,6.}) = 初期値; } キーがあったときは値を更新し、なかったときだけ作成するように したいのですが、このfindによるキーが同じかの比較も operator < が呼び出され、==のオーバーロードは不要と 考えてよろしいでしょうか?
|