このレッスンでは、追加されたアルゴリズム関数について説明します。まず all_of です。これは第1引数と第2引数でイテレータの組を取り、第3引数に述語を受け取ります。範囲に対して、述語が全て true を返すと、all_of も true を返します。また、似たものに、any_of と none_of も追加されました。any_of は、1つだけでも true を返せばany_of も true を返します。none_of では、全てが false を返すとnone_of は true を返します。また find_if_not も追加されました。これは find_if と基本的に同じですが、条件を満たさない最初の要素を検索します。また copy_ncopy_if も追加されました。copy_n は第2引数で数値を受け取るようになり、その数値の分だけコピーを行うようになりました。copy_if では、第4引数に述語を受け取るようになり、その述語が true を返した要素のみコピーが行われるようになりました。また move も追加されました。アルゴリズムヘッダの move は基本的に copy と同じですが、copy と異なり、要素を全て move していきます。 また minmax というのも追加されました。これは引数は min max と同じですが、返り値型が std::pair となっており、最小値 最大値を同時に返します。first が最小値でsecond が最大値です。似たものとして、minmax_element が追加されました。これは、min_element とmax_element と引数は同じですが、やはり返り値がstd::pair となっており、first には最小値を出すイテレータが、second には最大値を出すイテレータが返ってきます。そして is_sorted も追加されました。これは範囲を受け取り、その範囲が sort 済みかどうかを返します。似たものとしてis_heap も追加されました。これは範囲を受け取り、その範囲が heap 構造になっているかどうかを返します。このレッスンでは、追加されたアルゴリズム関数について説明しました。