The Wayback Machine - https://web.archive.org/web/20170914032059/http://ja.cppreference.com:80/w/cpp/algorithm/binary_search
名前空間
変種
操作

std::binary_search

提供: cppreference.com
< cpp‎ | algorithm
 
 
アルゴリズムライブラリ
機能します
Original:
Functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
シーケンス動作を非改変
Original:
Non-modifying sequence operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
シーケンス動作を変更する
Original:
Modifying sequence operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
操作を仕切る
Original:
Partitioning operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(ソートされた範囲で)ソート操作
Original:
Sorting operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
バイナリ検索操作(ソート範囲で)
Original:
Binary search operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
binary_search
equal_range
(ソートされた範囲で)操作を設定します
Original:
Set operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
ヒープ操作
Original:
Heap operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
最小値/最大値操作
Original:
Minimum/maximum operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
数値演算
Original:
Numeric operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Cライブラリ
Original:
C library
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 
Defined in header <algorithm>
template<class ForwardIt, class T >
bool binary_search( ForwardIt first, ForwardIt last, const T& value );
(1)
template<class ForwardIt, class T, class Compare >
bool binary_search( ForwardIt first, ForwardIt last, const T& value, Compare comp );
(2)

ソート範囲[first, last)いるかどうかをチェックvalueに等しい要素が含まれています。最初のバージョンは、要素を比較するoperator<使用して、2番目のバージョンは、指定された比較関数compを使用しています.

目次

[編集]パラメータ

first, last - 検討する要素の範囲
value - に要素を比較する値
comp - 比較関数. 最初の値が二つ目の値より小さい 場合、 ​trueを返します.

比較関数のシグネチャは以下と同等でなければなりません.

 bool cmp(const Type1 &a, const Type2 &b);

シグネチャはconstを含まなくても構いませんが, 比較関数は渡されたオブジェクトを変更してはなりません.
The type Type1 must be such that an object of type T can be implicitly converted to Type1. The type Type2 must be such that an object of type ForwardIt can be dereferenced and then implicitly converted to Type2. ​

型の要件
-
ForwardItForwardIterator

の要求を満足しなければなりません。

[編集]返り値

valueに等しい要素が見つかった場合はtrue。その他の場合はfalse

[編集]計算複雑性

firstlastとの間の距離の対数

[編集]可能な実装

First version
template<class ForwardIt, class T>bool binary_search(ForwardIt first, ForwardIt last, const T& value){ first =std::lower_bound(first, last, value);return(first != last &&!(value <*first));}
Second version
template<class ForwardIt, class T, class Compare>bool binary_search(ForwardIt first, ForwardIt last, const T& value, Compare comp){ first =std::lower_bound(first, last, value);return(first != last &&!(comp(value, *first));}

[編集]

#include <iostream>#include <algorithm>#include <vector>   int main(){std::vector<int> haystack {1, 3, 4, 5, 9};std::vector<int> needles {1, 2, 3};   for(auto needle : needles){std::cout<<"Searching for "<< needle <<'\n';if(std::binary_search(haystack.begin(), haystack.end(), needle)){std::cout<<"Found "<< needle <<'\n';}else{std::cout<<"no dice!\n";}}}

出力:

Searching for 1 Found 1 Searching for 2 no dice! Searching for 3 Found 3

[編集]参考

特定のキーと一致する要素の範囲を返します
Original:
returns range of elements matching a specific key
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(関数テンプレート)[edit]
close