19 / 11 / 0
Регистрация: 02.09.2010
Сообщений: 235
|
||||||
1 | ||||||
Как проверить содержит ли вектор элемент?28.02.2011, 15:56. Показов 87433. Ответов 9
Метки нет (Все метки)
Есть заполненный вектор:
Спасибо.
0
|
28.02.2011, 15:56 | |
Ответы с готовыми решениями:
9
Постройте вектор, каждый элемент которого содержит наименьший по абсолютной величине элемент строки Массив: Найти максимальный по модулю элемент, а строку, которая содержит этот элемент, переслать в вектор В матрице размером NxM поменять местами строку, которая содержит элемент с наибольшим значением со строкой, которая содержит элемент с наименьшим Как создать вектор, который содержит классы? |
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
28.02.2011, 17:17 | 2 |
Если данные упорядочены - бинарный поиск, иначе - линейный.
1
|
19 / 11 / 0
Регистрация: 02.09.2010
Сообщений: 235
|
||||||
28.02.2011, 19:03 [ТС] | 3 | |||||
Вот написал для вектора int'ов, но не работает
И это, я так понимаю, будет самый быстрый поиск для обыкновенного вектора?
0
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|
28.02.2011, 19:06 | 4 |
Damaks, Если уже юзаете вектора, то будет логично использовать и конкретные алгоритмы(STL). Для вашего случая:
http://www.cppreference.com/wi... ary_search http://www.cppreference.com/wi... thm/search
1
|
Модератор
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,755
|
||||||
28.02.2011, 19:30 | 5 | |||||
1
|
19 / 11 / 0
Регистрация: 02.09.2010
Сообщений: 235
|
|
28.02.2011, 19:34 [ТС] | 6 |
find, это который в algorithm? У меня он работает недопустимо медленно. Сейчас попробуй совет asics.
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
28.02.2011, 20:48 | 7 |
Damaks, find не может работать недопустимо медленно. Скорость зависит от кол-ва элементов в нем.
std::search для одного элемента не покатит. Если find слишком медленно - либо пересмотрите используемый контейнер, либо binary_search после сортировки.
0
|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|
01.03.2011, 23:35 | 8 |
Насколько я знаю
find - ищет определенное значение и возвращает итератор binary_search - ищет диапазон значений по отсортированному вектору и возвращает bool значение (есть/нету) search - ищет диапазон значений по вектору и возвращает bool значение. По скорости получается сначала binary_search, потом find, потом search, но для поиска одного числа быстрее find, я прав?
0
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
||||||
01.03.2011, 23:40 | 9 | |||||
Да нет, должно работать без проблем, пробуй так
1
|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|
02.03.2011, 00:06 | 10 |
Да, уже понял что ошибся
А про скорость ничего не скажете, что лучше для поиска по вектору int'ов? Я вот сейчас замерил скорость find, а в search походу если одно число искать, а не диапазон, то мне надо задать его дважды, т.к. там можно задать только диапазон, правильно я мыслю? Или search предназначен только для поиска диапазона, и для поиска определенного числа его использовать неправильно? Добавлено через 20 минут Попробовал задать начальное и конечное значение одним числом, не вышло. Оказалось что разница между binary_search и search больше чем возможность поиска по несортированному вектору. binary_search ищет определенное число (у меня получилось его запустить), в то время как search диапазон, который нельзя задать одним числом, или у меня просто не получилось
0
|
02.03.2011, 00:06 | |
02.03.2011, 00:06 | |
Помогаю со студенческими работами здесь
10
Сформировать вектор B=(b1,b2,…bm), каждый элемент которого определяется как минимальный элемент соответствующего столбца исходной матрицы A(n,m) Как проверить, содержит ли the_content(); определенное слово Как проверить содержит ли строка русские символы ? Как проверить, что переменная содержит не число? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |