先頭へ戻る

readonly な STLアルゴリズム 解答ページ | Programming Place Plus C++編【標準ライブラリ】 第19章

Programming Place Plus トップページC++編

先頭へ戻る

C++編で扱っている C++ は 2003年に登場した C++03 という、とても古いバージョンのものです。C++ はその後、C++11 -> C++14 -> C++17 -> C++20 と更新されており、今後も 3年ごとに更新されます。
なかでも C++11 での更新は非常に大きなものであり、これから C++ の学習を始めるのなら、C++11 よりも古いバージョンを対象にするべきではありません。特に事情がないなら、新しい C++ を学んでください。 当サイトでは、C++14 をベースにした新C++編を作成中です。

問題①

問題① find、find_if、search、find_end、find_first_of の各関数について、その関係性を整理してください。


本質的に言えば、find系の関数は、範囲内から条件に合う単一の要素を探しますが、search系の関数は、範囲内から条件に合う範囲(部分)を探すということになります。

紛らわしいのが find_end関数で、これは名前とは裏腹に search関数に対応する関数であることです。search関数が条件に合う最初の範囲を返すのに対して、find_end関数は最後の範囲を返す違いがあります。

find/find_if は、それぞれ値を渡すか、関数や関数オブジェクトを渡すのかの違いです。STLアルゴリズム全般に言えることですが、名前の末尾に「_if」が付くものと付かないものがある場合は、同様の観点で分けられています。しかし、「_if」が付かないものしかなく、オーバーロードによって分けられている関数も多数あり、この辺りは一貫性がありません。


参考リンク


更新履歴

’2016/11/20 新規作成。



第19章のメインページへ

C++編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー