記事検索

検索ワードを入力してください。
Sky Tech Blog
【C++】std::any_ofに​ついて

【C++】std::any_ofに​ついて

C++のコンテナで条件を満たす要素があるか判定する際、for文の代わりに`std::any_of`アルゴリズムを使うとコードが簡潔で分かりやすくなります。本記事では、具体的なコード例を交えて`std::any_of`の利点と活用法を紹介します。

はじめに

C++には便利なアルゴリズムが多数用意されています。
今回はその中のstd::any_ofについて紹介いたします。

C++で指定のコンテナ内のいずれかの要素が何らかの条件を満たすかどうかという判定はよく使うことだと思います。
このとき、すぐに思いつく判定方法としてはfor文でイテレータを進めていく、というものになるかと思います。

例えば以下のようなデータがあった場合、

std::vector v = { 5, 7, 9, 11, 1, 3 };

for文で10以上の要素が1つでもあるかどうかを判定しようとするとこのような形になります。

bool result = false;
for (const auto& x : v) {
    if (x >= 10) {
        result = true;
        break;
    }
}

しかし、今回紹介するstd::any_ofを使えば先程のfor文は以下のように置き換えることができます。

bool result = std::any_of(v.begin(), v.end(), [](int x) { return x >= 10; });

for文を使っていたときに比べて簡潔でわかりやすくなったと思います。

このstd::any_ofだけでなく他にもC++には便利なアルゴリズムが多数用意されています。
アルゴリズムが使える場面ではアルゴリズムを積極的に使うと可読性の高い、保守しやすいコードが書きやすくなるのでぜひ活用してください。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム