Что такое upper_bound и lower_bound в c++ и чем они отличаются

245
30 марта 2018, 13:15

Скажите пожалуйста, что такое upper_bound и lower_bound в стандартной библиотеке С++ и как они работают.

Answer 1

Ну, например, у вас есть упорядоченная (важно!) последовательность

1 2 3 4 4 4 5 5 5 5 5 6 7

При поиске upper_bound для значения 5 это будет итератор (указатель, если концепция итератора для вас нова) на значение 6 - первое большее значение.

Соответственно, lower_bound будет указывать на первое не меньшее значение - на первое 5.

Например, код

int main(int argc, const char * argv[])
{
    int a[20] = { 1,2,3,4,5,6,7,7,7,8,9,9,11,11,12,16,20,20,20,20 };
    for(int * p = lower_bound(a,a+20,10);
        p != upper_bound(a,a+20,20); ++p)
        cout << *p << " ";
    cout << endl;
}

дает

11 11 12 16 20 20 20 20 
READ ALSO
Актуальна ли книга С. Прата С++ 6-издание 2011г.? [требует правки]

Актуальна ли книга С. Прата С++ 6-издание 2011г.? [требует правки]

Стоит ли читать СПрата С++ 6-издание 2011г

234
FFMPEG in OpenCv (UDP to TCP)

FFMPEG in OpenCv (UDP to TCP)

Добрый день

312
Вопрос по коду с++

Вопрос по коду с++

Здравствуйте, пытаюсь разобраться с кодом (переводит число из 10 системы в любую)

244
opencv пропускает секунду видео

opencv пропускает секунду видео

Есть видео: MPEG4 Video (H264) 960x540 30fps [V: h264 main L31, yuv420p, 960x540]

235