Как использовать функцию Upper_bound() в C++

Kak Ispol Zovat Funkciu Upper Bound V C



С помощью языка программирования 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++. Это может быть полезно для таких задач, как поиск следующего по величине числа в списке или поиск первого элемента в отсортированном массиве, значение которого превышает заданное пороговое значение.