周回遅れですがC++17について調べていたら便利な文法が追加されたことを知りました。
auto itr = map.find(key);
if (itr != map.end()) // キーが存在する場合
{
// 略(大体itr使ってゴニョゴニョする)
}
みたいなのが
if (auto itr = map.find(key); itr != map.end()) // キーが存在する場合
{
// 略(大体itr使ってゴニョゴニョする)
}
と書けるんですね。
findは処理が重いのでmapの要素が数万件とかになるとitrに結果を代入してチェック、存在する場合はitrから要素にアクセスするのがいいのですが、いちいちitrへの代入文をif文の前に書くのが嫌だったんです。この場合、itrのスコープがif文内なのも非常に分かりやすいです。昔のコードは変数を使いまわししまくるですごく見づらいんですよね。
参考
if文とswitch文の条件式と初期化を分離 - cpprefjp C++日本語リファレンス