logo

C++ の std::find

std::find 内部で定義された関数です ヘッダー ファイル 指定された範囲内の要素を検索します。指定されたシーケンス内で最初に出現した指定された要素への反復子を返します。要素が見つからない場合は、最後までのイテレータが返されます。

構文:



input_iterator std::find (input_iterator first , input_iterator l ast , const T& value );>

パラメーター:

    first: シーケンス内の最初の位置への反復子。 last: シーケンス内の最後の位置の直後に位置する反復子。 (vector.end() はシーケンスの最後の位置ではなく、シーケンスの最後の要素の次の位置を指すことに注意してください)。 value: 検索する値。

戻り値:

  • 値が 見つかった シーケンス内で、その位置への反復子が返されます。
  • 値が 見つかりません 、最後の位置へのイテレータが返されます。

注記 : input_iterator は使用されるコンテナのイテレータ型であり、 T 関数テンプレートで定義された型名です。



例:

C++

jsのbase64デコード






// C++ program to Demonstrate> // std::find for vectors> #include> // Driver code> int> main()> {> >std::vector<>int>>もの{10, 20, 30, 40};>> >// Iterator used to store the position> >// of searched element> >std::vector<>int>>::それを反復処理します;>>' // Print Original Vector> >std::cout <<>'Original vector :'>;> > >for> (>int> i = 0; i std::cout << ' ' << vec[i]; std::cout << ' '; // Element to be searched int ser = 30; // std::find function call it = std::find(vec.begin(), vec.end(), ser); if (it != vec.end()) { std::cout << 'Element ' << ser << ' found at position : '; std::cout << it - vec.begin() << ' (counting from zero) '; } else std::cout << 'Element not found. '; return 0; }>

>

>

出力

Original vector : 10 20 30 40 Element 30 found at position : 2 (counting from zero)>

時間計算量: の上)
補助スペース: ○(1)

注: std::find() 関数はヘッダー ファイル内で定義されています。したがって、find 関数を使用する前に、そのヘッダー ファイルをインクルードする必要があります。

std::find() の時間計算量は O(n) であり、ソートされていないシーケンスでも機能することがわかるため、これは 線形探索 実装時のアルゴリズム。

関連記事:

  • std::検索
  • std::find_if、std::find_if_not
  • std::nth_element
  • std::find_end