0954デフォルトの名無しさん (ワッチョイ 8eca-ANn9)2023/10/24(火) 22:26:14.45ID:0fDOryx60
文字コード周りだけは決着つけてくれ!
chatGPTが今ダウンしているので質問します
以下のC++コードでfirst->secondとなっている部分がよくわかりません
vector<pair<int, int>> A(N);
for(auto& [x, y] : A) cin >> x >> y;
unordered_map<int, int> X, Y;
for(auto& [x, y] : A){
x = X.try_emplace(x, X.size()).first->second;
y = Y.try_emplace(y, Y.size()).first->second;
}
try_emplaceはPair<iterator,bool>を返すオーバーロードがあるので
firstまではわかるもののそこからさらにsecondとすると何がおきるのでしょうか
0957デフォルトの名無しさん (スププ Sd9a-Cy5w)2023/10/26(木) 22:18:49.00ID:eAGx217zd
単に入れ子になってるだけ
ポインタの先の要素がまたポインタで指してるだけ
0959デフォルトの名無しさん (ワッチョイ 5101-CP9B)2023/10/29(日) 23:41:12.89ID:JPy8qBbk0
C++モジュールについて
・CMakeが3.26で実験的対応、3.28で正式対応
・g++は対応状況が良くないが、2024年第二4半期に対応できるとKitwareは考えている
・VS2022最新版内臓のCMakeバージョンは3.26
・Clangとclはモジュールに対応している
0961デフォルトの名無しさん (アウアウウー Sad5-g+2W)2023/10/30(月) 13:37:46.82ID:xnp7PI6ya
>深い入れ子のループを終了するには goto ステートメントを使用する必要がある場合もあります
って描いてあるしそれが問題とは言ってないんじゃないか
まあ問題あるならそもそも導入されるはずがないわけで問題ないのは分かるんだけど
「可能な限り〜お勧めします。」と言うように使用を推奨しない理由は何なのかなと
例えば特定の処理が飛ばされて動作しなくなる場合があるとかなんかな?と
それはrustのラベルbreakのような
安全なループの抜け方しか考えてないから安全で当たり前
c/c++のgotoはもっと凶悪なことができる
C++のgotoはちゃんとデストラクタを呼んでくれるから、意外とそんなに破滅的なことにはならんのだよね
だからって多重ループ脱出以外で使おうとは思わんけど
多重ループ脱出で使っている人って多いんかな?
他にこういう使い方しているとかってない?
0975デフォルトの名無しさん (ワッチョイ 5101-CP9B)2023/10/30(月) 19:04:07.11ID:qWSrxYwr0
switchとgoto組み合わせて状態機械作ってる
gcc拡張のlabelのアドレスとれるやつとかな
昔はイキって使ってたわ
ループ脱出レベルで例外を使うのは変だと感じる
関数抜けないのに例外なんて…
んで大昔に例外に似た機能のFound文Match文とか妄想してたんだな
実質タダのgoto文
例外は通常動作として起こらないような動作で起こすもので
何か探すループなんかで実際に対象が見つかったとしてそれは「例外」なのか?
ちがうだろー
例外はパフォーマンス的に重いしそれ以前に
正常系の出力を異常系で投げるのはおかしい
まったくもって異常
よその言語ではイテレータの終了通知に例外使ってたりするから人格否定するほどの話ではない
C++の慣用としてやられてないし向いてないってだけ
非常に大切で根本的な理由と例を挙げたのに「実にくだらない理由」としか取られないのが残念
例外はただの制御構文ではない
凶悪といえばAnsiCのsetjmp()とlongjmp()
あれらを規格に入れてるのはキチガイとしか
Core Guideline にも例外はエラー処理だけに使えとある.
多重ループからの脱出が本当にエラー処理なの?
10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 174日 19時間 30分 57秒