C++ 演算法 upper_bound() 函式
示例
查詢已排序向量中大於 7 的第一個值
vector<int> numbers = {1, 7, 3, 5, 9, 2};
sort(numbers.begin(), numbers.end());
auto it = upper_bound(numbers.begin(), numbers.end(), 7);
if(it != numbers.end()) {
cout << *it << " is the first value greater than 7";
} else {
cout << "No elements found above the upper bound";
}
自己動手試一試 »
定義和用法
upper_bound()
函式是一個高效的演算法,用於在已排序的資料範圍內查詢大於指定上界的第一個值。
如果資料範圍未排序,則該函式可能會返回不正確的結果。可以使用 sort() 函式對資料範圍內的元素進行排序。
資料範圍由迭代器指定。
語法
upper_bound(iterator start, iterator end, <type> bound);
<type>
指的是範圍包含的資料型別。
引數值
引數 | 描述 |
---|---|
start | 必需。指向資料範圍開始位置的迭代器。 |
end | 必需。指向資料範圍結束位置的迭代器。將包含此位置之前的元素,但不包含此位置的元素。 |
bound | 必需。指定上界。 |
技術詳情
返回 | 指向包含大於上界第一個值的元素的迭代器。如果沒有找到元素,則返回資料範圍的末尾。 |
---|
相關頁面
在我們 資料結構教程 中瞭解更多關於資料結構的資訊。
在我們 迭代器教程 中瞭解更多關於迭代器的資訊。
在我們 演算法教程 中瞭解更多關於演算法的資訊。