如何使用 lower_bound(upper_bound) 查找数组中任意数字的位置?
How to use lower_bound(upper_bound) to find position of any number in array?
例如,我有一个包含元素 1,7,9,23,34,47,67,89,123,234,345,567 的数组。
我需要知道123的位置。
用元素声明和初始化数组。然后创建一个 vector
的整数。在 vector
上使用 upper_bound()
。这是一个例子:
#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;
}
希望对您有所帮助!!
例如,我有一个包含元素 1,7,9,23,34,47,67,89,123,234,345,567 的数组。 我需要知道123的位置。
用元素声明和初始化数组。然后创建一个 vector
的整数。在 vector
上使用 upper_bound()
。这是一个例子:
#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;
}
希望对您有所帮助!!