![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
問題文↓
http://www.deqnotes.net/acmicpc/p0105/ja
答え↓
http://www.deqnotes.net/acmicpc/p0105/p0105-deq- …
です。
自分で調べたのですが、答えの中の
int operator<(const Event &a) const {
return time != a.time ? time < a.time
: type > a.type;
と、
ev.push_back(start);
ev.push_back(end);
の意味がよくわかりませんでした。
int operatorに関しては、sortの条件を作っているのかなとは思うのですが。
どなたか、上に挙げたふたつの部分の解説をしていただきたいです。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
「演算子のオーバーロード」を調べてください。
通常の < 演算子は、 a < b → aがbより小さければ1,そうでなければ0 という演算をします。
通常は数値同士の場合しか使えませんが、これをクラス等にも使えるようにするのが「演算子のオーバーロード」です。
なんでも定義できますが、元の演算子と同じ動作をさせるべきでしょう。
Event x,y ;なら
x < y → xがyより「小さい」ならば1,そうでなければ0
という関数にするのが妥当です。
> <(const Event &a) constの部分は、<で引数が二つということを表しているのですか。
表していません。
「operator <」 がセットです。
引数は1つです。
> そして、{}内は、returnする内容を表しているのですか
聞かないとわからないことですか?
No.2
- 回答日時:
STL.
sort は, 結果として得られる列において a, b の順に隣接する要素が (ちょっと不正確ですが) a < b を満たすように並べ替えるんだけど, 内部的に x < y という比較をするために演算子 < が必要です (ただし比較関数を与える 3引数バージョンもあって, そっちを使うことにすればこの演算子はなくてもいい).
push_back は「最後尾に要素を追加する」メンバー関数です.
この回答への補足
ありがとうございます。STLについて調べました。
int operator<(const Event &a) const {
return time != a.time ? time < a.time
: type > a.type;
}
では、上記の<(const Event &a) constの部分は、<で引数が二つということを表しているのですか。
そして、{}内は、returnする内容を表しているのですか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA/HTML】特定のタグ要素に...
-
ajaxで追加したdom要素にscript...
-
デジタル時計の時刻合わせの方...
-
マイページはどこを開くの
-
スクリプトって、何ですか?ど...
-
一定時間おきにアラームやポッ...
-
エクセルのシート上に別のシー...
-
Javascript_submit()完了後に処...
-
[Java] Edgeでのアドレスバー非...
-
Excelでワードアートや図を常に...
-
リトルバスターズEXを中古で購...
-
小さな表示窓の呼び方は
-
Youtubeが勝手に右下に勝手に小...
-
ウイルスバスターの契約更新に...
-
「Cancel = True」とはどういう...
-
Excel操作 ウィンドウで出した...
-
Chromeは何で進むボタンが無いの?
-
どうして+3
-
Outlookでこのような表示がされ...
-
画面を開かずに値を取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PL/Iについて、教えてください。
-
MFCを使って、ひとつのkey(CStr...
-
(VBS) テキストファイル読込で...
-
【VBA/HTML】特定のタグ要素に...
-
VC++のデバッガでvectorの要素...
-
jQueryで<body>要素にマウスが...
-
ajaxで追加したdom要素にscript...
-
JQuery、セレクトボックスをル...
-
エクセルでタグの内容が取得で...
-
ファンクションキーの既存の機...
-
【VB.NET】HTML要素を取得しよ...
-
IE等のブラウザにテキスト入...
-
JavaScriptでクリップボードの...
-
フローティングのやり方について
-
デジタル時計の時刻合わせの方...
-
マイページはどこを開くの
-
ウインドウを毎回同じ位置、大...
-
エクセルのシート上に別のシー...
-
Javascript_submit()完了後に処...
-
Excelでワードアートや図を常に...
おすすめ情報