C++ の find_if2020年05月19日 12時22分00秒

C++03 から増えた algorithm。それ以前では弱かったライブラリ系を STL コンテナと algorithm で強化された。その前後の年ではライブラリ群の充実していた Java 等がちょっと複雑な事でも手軽に出来てしまった。C++ のライブラリは、Java の様に何でも突っ込むといった方向性は無いが、それでも各種構造体と、構造体を用いて便利に処理を済ませられる様になって来ている。

汎用性のある関数が algorithm に追加された。汎用性のある分、取っ付くづらくなるが、慣れの問題。大体はテンプレート型を取り柔軟に使えるようになっている。find_if の例。

#include <vector>
#include <iostream>
#include <algorithm>

int main()
{   
    auto negative = []( int i ){ return i < 0; };

    std::vector< int > ones = { 1, 2, 3, 4, -2,  5, 0, -1 };

    auto find = std::find_if( ones.begin(), ones.end(), negative );

    std::cout << "\nfind_if returned " << *find;
    std::cout << std::endl;
}
一桁の数字の中に負の整数があるかを調べるのに使え、その位置を取得出来る。
% c++ find_if.cpp
% ./a.out
find_if returned -2

次回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2020/05/19/9248387/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。