С помощью языка программирования C++ можно создавать различные программы, включая игры, графику, веб-серверы и т. д. Однако иногда нам может потребоваться выполнить некоторые операции с данными в наших программах, например поиск, сортировку или поиск максимального или минимального значения среди диапазона элементов. Одной из функций, которую можно использовать для поиска верхней границы значения в отсортированном диапазоне элементов, является Upper_bound().
Что такое функция Upper_bound() в C++?
Функция Upper_bound() в C++ — это функция, которая принимает отсортированный диапазон элементов и значение в качестве аргументов и возвращает итератор, указывающий на первый элемент в диапазоне, который больше значения.
Он имеет два разных типа аргументов:
число Upper_bound ( на одной. первый , на одной. последний , ценить )
Итераторы, задающие диапазон проверяемых элементов, являются первыми и последними. Используемый интервал содержит все элементы от первого элемента до конца, но не включает элемент, указанный последним. Значение — это значение, с которым сравниваются элементы.
число Upper_bound ( на одной. первый , на одной. последний , ценность, сравнение конкурентов )
В этом случае двоичная функция comp выдает значение, которое можно преобразовать в bool, и принимает два параметра того же типа, что и элементы диапазона. Если определенное условие требует, чтобы первый аргумент не превышал второй, функция должна возвращать истинный результат, а если нет, она должна возвращать ложь.
Как использовать функцию Upper_bound() в C++
Функцию Upper_bound() можно использовать для поиска верхней границы значения в отсортированном диапазоне элементов в различных ситуациях. Например, мы можем использовать его, чтобы найти позицию элемента в отсортированном массиве или векторе или найти следующий больший элемент в наборе или карте. Вот несколько примеров использования функции Upper_bound() в C++:
Пример 1. Использование функции Upper_bound() для поиска позиции элемента в отсортированном массиве
Вот пример, в котором функция Upper_bound() используется для поиска позиции элемента в отсортированном массиве целых чисел и отображения ее на экране:
#include
#include
с использованием пространство имен стандартный ;
интервал основной ( )
{
интервал множество [ ] '=' { пятнадцать , 35 , Четыре пять , 55 , 65 } ;
интервал а '=' размер ( множество ) / размер ( множество [ 0 ] ) ;
расчет << 'Массив содержит: ' ;
для ( интервал я '=' 0 ; я < а ; я ++ )
расчет << множество [ я ] << ' ' ;
расчет << ' \п ' ;
интервал б '=' Четыре пять ; // объявляем и инициализируем значение
интервал * п '=' верхняя граница ( массив, массив + а, б ) ;
расчет << «Верхняя граница» << б << ' находится в позиции: ' << ( п - множество ) << ' \п ' ; // отображаем позицию, используя арифметику указателей
возвращаться 0 ;
}
Сначала программа определяет необходимые файлы заголовков и массив, содержащий числа, а затем использует функцию sizeof() для получения размера массива. Затем цикл for используется для отображения элементов массива, а затем объявляется целое число, положение которого в массиве определяется с помощью указателя и отображается на выходе:
Пример 2. Использование функции Upper_bound() для поиска следующего большего элемента в наборе
Вот пример кода, который использует функцию Upper_bound() для поиска следующего элемента, большего, чем заданное значение, в наборе целых чисел и отображения его на экране:
#include#include
#include <вектор>
с использованием пространство имен стандартный ;
интервал основной ( )
{
набор < интервал > на одной '=' { пятнадцать , 25 , 35 , Четыре пять , 55 } ; // объявляем и инициализируем набор целых чисел
расчет << «Данные числа:» ;
для ( авто а : на одной ) // отображаем элементы набора, используя цикл for на основе диапазона
расчет << а << ' ' ;
расчет << ' \п ' ;
интервал а '=' Четыре пять ; // объявляем и инициализируем значение
авто это '=' верхняя граница ( на одной. начинать ( ) , на одной. конец ( ) , а ) ; // находим верхнюю границу x в наборе с помощью Upper_bound()
если ( это ! '=' на одной. конец ( ) ) // проверяем, действителен ли итератор
расчет << «Следующее большее число, чем» << а << ' является ' << * это << ' \п ' ; // отображаем элемент с помощью оператора разыменования
еще
расчет << «Нет числа больше, чем» << а << ' \п ' ; // отображаем сообщение, если такой элемент не найден
возвращаться 0 ;
}
Сначала код определяет необходимые файлы заголовков, затем определяется вектор из пяти элементов, затем вектор отображается с использованием ключевого слова auto, поскольку оно может автоматически устанавливать тип данных элементов. Затем объявляется переменная со значением 45, которая затем сравнивается с вектором, определенным с помощью функции Upper_bound(), а затем отображает результат сравнения:
Заключение
Функция Upper_bound() — это функция, которая возвращает итератор, указывающий на первый элемент в отсортированном диапазоне, который больше заданного значения. Чтобы найти первое число в интервале, который больше или равен указанному числу, используйте функцию Upper_bound() в C++. Это может быть полезно для таких задач, как поиск следующего по величине числа в списке или поиск первого элемента в отсортированном массиве, значение которого превышает заданное пороговое значение.