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++




// 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> >::それを反復処理します;>>' ;> > > 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