teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2020/05/10 11:36

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -5,15 +5,16 @@
5
5
  #include <iterator>
6
6
  #include <algorithm>
7
7
 
8
+ int binary_search(const std::vector<int>& numbers, int target) {
9
+ auto itr = std::lower_bound(numbers.begin(), numbers.end(), 5);
10
+ return (itr == numbers.end() || *itr != 5) ?
11
+ -1 : static_cast<int>(std::distance(numbers.begin(), itr));
12
+ }
13
+
8
14
  int main(void) {
9
15
  using namespace std;
10
16
  vector<int> numbers = { 1, 2 ,3 ,4 ,5 };
11
17
 
12
- auto itr = lower_bound(numbers.begin(), numbers.end(), 5);
13
- if ( itr == numbers.end() || *itr != 5 ) {
14
- cout << -1 << endl;
15
- } else {
16
- cout << distance(numbers.begin(), itr) << endl;
18
+ cout << binary_search(numbers, 5) << endl;
17
- }
18
19
  }
19
20
  ```