Пространства имён
Варианты
Действия

std::bsearch

Материал из cppreference.com
< cpp‎ | algorithm

 
 
Алгоритмы
Функции
Немодифицирующие линейные операции
Модифицирующие линейные операции
Разделение
Сортировка (на отсортированных промежутках)
Бинарный поиск (на отсортированных промежутках)
Множества (на отсортированных промежутках)
Куча
Минимум/максимум
Числовые операции
Библиотека C
bsearch
 
Определено в заголовочном файле <cstdlib>
void* bsearch( const void* key, const void* ptr, size_t count, size_t size,
               int (*comp)(const void*, const void*) );
Находит элемент, равный элемент, на который указывает key в массиве, на который указывает ptr. Массив содержит элементы count размер size. Функция, на которую указывает comp используется для сравнения объектов.
Оригинал:
Finds an element equal to element pointed to by key in an array pointed to by ptr. The array contains count elements of size size. Function pointed to by comp is used for object comparison.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править] Параметры

key -
Указатель на элемент для поиска
Оригинал:
pointer to the element to search for
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
ptr -
Указатель на массив для проверки
Оригинал:
pointer to the array to examine
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
count -
Количество элементов в массиве
Оригинал:
number of element in the array
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
size -
Размер каждого элемента массива в байтах
Оригинал:
size of each element in the array in bytes
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
comp - comparison function which returns ​a negative integer value if the first argument is less than the second,

a positive integer value if the first argument is greater than the second and zero if the arguments are equal. key is passed as the first argument, an element from the array as the second.
The signature of the comparison function should be equivalent to the following:

 int cmp(const void *a, const void *b);

The function must not modify the objects passed to it.

[править] Возвращаемое значение

Указатель на найденный элемент или NULL иначе.
Оригинал:
Pointer to the found element or NULL otherwise.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Пример

#include <cstdlib>
#include <iostream>
 
int compare(const void *ap, const void *bp)
{
    const int *a = (int *) ap;
    const int *b = (int *) bp;
    return *a - *b;
}
 
int show_ptr(int *p)
{
    if (p == NULL) {
        std::cout << "NULL\n";
    } else {
        std::cout << p1 << ' ' << *p1 << '\n';
    }
}
 
int main(int argc, char **argv)
{
    const int ARR_SIZE = 8;
    int arr[ARR_SIZE] = { 1, 2, 3, 4, 5, 6, 7, 8 };
 
    int key1 = 4;
    int *p1 = (int *) std::bsearch(&key1, arr, ARR_SIZE, sizeof(arr[0]), compare);
 
    int key2 = 9;
    int *p2 = (int *) std::bsearch(&key2, arr, ARR_SIZE, sizeof(arr[0]), compare);
 
    std::cout << "p1: ";
    show_ptr(p1);
 
    std::cout << "p2: ";
    show_ptr(p2);
}

Вывод:

p1: 0xbf9a4c88 4
p2: NULL

[править] См. также

виды диапазон элементов с неопределенным типом
Оригинал:
sorts a range of elements with unspecified type
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция) [edit]
возвращает набор элементов для конкретного ключа
Оригинал:
returns range of elements matching a specific key
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон функции) [edit]
C documentation for bsearch