Как использовать lower_bound (upper_bound), чтобы найти позицию любого числа в массиве?

Например, у меня есть массив с элементами 1,7,9,23,34,47,67,89,123,234,345,567.
Мне нужно знать позицию 123.

-1

Решение

Объявите и инициализируйте массив с элементами. Затем создайте vector целых использование upper_bound() на vector, Вот пример:

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

int main() {
int arr[] = {1,7,9,23,34,47,67,89,123,234,345,567};
int len = sizeof(arr)/sizeof(arr[0]);
vector<int> v(arr,arr+len);

vector<int>::iterator upper;
upper = upper_bound(v.begin(), v.end(), 123);
cout<<(upper-v.begin())<<endl;  // Output: 9

return 0;
}

Надеюсь, поможет!!

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]