ホームページ  >  記事  >  ウェブフロントエンド  >  find関数を使用して配列内の要素を見つけるにはどうすればよいですか?

find関数を使用して配列内の要素を見つけるにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-11-18 12:24:001758ブラウズ

find関数を使用して配列内の要素を見つけるにはどうすればよいですか?

プログラミング プロセスでは、配列内の要素を見つける必要があることがよくあります。現時点では、検索機能を使用してこのタスクを簡単に完了できます。この記事では、find 関数を使用して配列内の要素を検索する方法を詳しく説明し、いくつかのコード例を示します。

1. find 関数の定義

C STL では、find 関数はヘッダー ファイル で定義され、次の 2 つのオーバーロード形式があります:

  1. find (最初のイテレータ、最後のイテレータ、検索される要素の値): [最初、最後] の範囲内の値を検索し、その要素を指すイテレータを返します。見つからない場合は、最後のイテレータを返します。
  2. find(iterator first, iterator last, 検索する要素の値, function cmp): 上記と同じですが、要素が等しいかどうかを判断するには関数 cmp を使用します。

このうち、cmp 関数の 2 番目のバージョンは、次の要件を満たす必要があります:

  • 関数の戻り値は bool 型;
  • The関数のパラメータの型が使用するものと同じである同じ値を持つ要素を検索します。

2. find 関数を使用して配列内の要素を検索します

整数配列 a があり、それに要素 x が含まれているかどうかを調べたいとします。このタスクを完了するには、find 関数を使用できます。具体的なコードは次のとおりです:

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int a[] = {1, 3, 5, 7, 9};
    int x = 5;
    int* p = find(a, a + 5, x);    // 在a数组中查找元素x
    if (p != a + 5) {    // 如果找到了,输出对应下标,否则输出未找到
        cout << "找到了,下标为:" << p - a << endl;
    } else {
        cout << "未找到" << endl;
    }
    return 0;
}

上記のコードは、まず整数配列 a と検索対象の要素 x を定義し、次に find 関数を使用して検索します。配列aの要素x。見つかった場合は配列内の要素の添え字を出力し、見つからなかった場合は出力を行いません。

3. 関数オブジェクトを使用して比較ルールをカスタマイズする

find 関数の 2 番目のバージョンでは、関数オブジェクトを使用して比較ルールをカスタマイズできます。次の例では、struct Cmp を定義し、() 演算子をオーバーロードして、要素の絶対サイズに従ってサイズを比較します。

#include <iostream>
#include <algorithm>
using namespace std;

struct Cmp {
    bool operator() (int x, int y) {
        return abs(x) < abs(y);
    }
};

int main() {
    int a[] = {-3, 1, -5, 7, 2};
    int x = -5;
    int* p = find(a, a + 5, x, Cmp());    // 在a数组中按照绝对值大小查找元素x
    if (p != a + 5) {
        cout << "找到了,下标为:" << p - a << endl;
    } else {
        cout << "未找到" << endl;
    }
    return 0;
}

上記のコードでは、要素の絶対値を比較するために () 演算子をオーバーロードする Cmp という名前の構造体として比較ルールを定義します。 find 関数では、Cmp() を使用して、定義されたルールに従って検索する関数オブジェクトをインスタンス化します。

概要

この記事では、C STL の find 関数を使用して配列内の要素を検索する方法を説明し、いくつかのコード例を示します。比較ルールをカスタマイズすることで、検索関数の柔軟性も実証します。実際の開発では、この記事の内容を参照して適切な比較ルールを選択し、プログラムにより良い機能を提供できます。

以上がfind関数を使用して配列内の要素を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。