Форум программистов, компьютерный форум CyberForum.ru

lower_bound - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.94
Sade
2 / 2 / 1
Регистрация: 20.03.2012
Сообщений: 42
12.11.2012, 20:48     lower_bound #1
У меня вопрос как использовать функцию STL lower_bound к простому массиву допустим int f[1111] искать на промежутке от 1 до n какое-то x так можно и как? Подскажите пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2012, 20:48     lower_bound
Посмотрите здесь:

std::sort + std::lower_bound C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
12.11.2012, 21:04     lower_bound #2
массив должен быть отсортирован, возвращает указатель на первый элемент >= искомого
ссылка с примером
http://www.cplusplus.com/reference/a...m/lower_bound/
Sade
2 / 2 / 1
Регистрация: 20.03.2012
Сообщений: 42
13.11.2012, 15:55  [ТС]     lower_bound #3
здесь vector!Я и сам это знаю.Я спросил с простым массивом можно или нет!
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
13.11.2012, 16:05     lower_bound #4
пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
 
int main()
{
    int arr[] = {1,2,3,4,5,6};
    int* ib = std::begin(arr), *ie = std::end(arr);
    std::sort(ib, ie);
    int* ilb = std::lower_bound(ib, ie, 5);
    std::cout << "index: " << ilb - ib << std::endl;
    return 0;
}
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
13.11.2012, 16:10     lower_bound #5
Можно и с любым массивом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
    int data[] = { 1, 1, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6 };
    auto lower = std::lower_bound(data, data + sizeof data/ sizeof data[0], 4);
    std::copy(data, lower, std::ostream_iterator<int>(std::cout, " "));
    system("pause");
    return 0;
}
Yandex
Объявления
13.11.2012, 16:10     lower_bound
Ответ Создать тему
Опции темы

Текущее время: 07:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru