{alex}
0 / 0 / 0
Регистрация: 05.02.2011
Сообщений: 19
|
||||||
#1 | ||||||
Поиск в STL - C++23.04.2011, 18:37. Просмотров 2805. Ответов 6
Метки нет Все метки)
(
Здравствуйте) Вот пытаюсь совершить поиск в контейнере вектор спомощью find. Написал функтор, ищу ну что-то наверное неправильно. Не подскажите в чём загвоздка. Заранее благодарен. Вот код.
0
|
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
23.04.2011, 18:37 |
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Поиск в STL (C++):
6
stl сортировка,поиск - C++
Поиск и сортировка list STL - C++ STL,Поиск определителя и решение с.л.а.у.,WxDev-C++7.3.1.3 - C++ Multimap STL - работает только запись в файл, поиск в файле не работает - C++ |
Ma3a
![]() 619 / 463 / 31
Регистрация: 28.01.2011
Сообщений: 605
|
||||||||||||||||
23.04.2011, 19:20 | #2 | |||||||||||||||
Стандартный алгоритм std::find работает посредством оператора ==, для того, чтобы пользоваться функторами, придется написать свой find, например, так:
Всё это применительно к тому, если нужно пользоваться бинарными предикатами, если нужно просто найти элементы, удовлетворяющие какому-то условию, то подойдет std::find_if.
1
|
{alex}
0 / 0 / 0
Регистрация: 05.02.2011
Сообщений: 19
|
|
23.04.2011, 19:36 [ТС] | #3 |
Спасибо, сейчас попробую
Добавлено через 9 минут Со своим find помогло, а вот find_if тоже не пашет. Ну если я правильно понимаю то стандартные типы можно искать этими методами, а вот для пользовательского типа надо писать свои какие-то функции, перегруженные операторы и тому подобное.
0
|
ForEveR
В астрале
![]() |
||||||
23.04.2011, 19:42 | #4 | |||||
Добавлено через 2 минуты
{alex}, Для find_if...
0
|
Ma3a
![]() 619 / 463 / 31
Регистрация: 28.01.2011
Сообщений: 605
|
|
23.04.2011, 19:44 | #5 |
Просто каждый алгоритм предназначен для одной цели, полностью универсальных нет. Естественно, если вы работаете со своими типами и используете STL, то стоит позаботиться о том, чтобы были определены соответствующие операции сравнения и прочее, "из коробки" работать не будет, предоставите алгоритмам то, чего они хотят - они будут работать.
0
|
xAtom
|
||||||
24.04.2011, 13:34 | #6 | |||||
функция STL - find, прекрасно может справиться с любым пользовательским типом, для этого в С++ есть мощная методика в перегрузки операторов, добавьте несколько строк кода для сравнения в свою структуры и всё, вот наглядный пример:
0
|
ForEveR
В астрале
![]() |
|
24.04.2011, 13:44 | #7 |
xAtom, Предикаты помощнее будут, ага
0
|
24.04.2011, 13:44 | |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
24.04.2011, 13:44 |
Привет! Вот еще темы с ответами:
7
Позиция элемента в контейнере STL кон. SET, поиск контейнер set словарь позиция - C++ STL - C++ STL - C++ STL - C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |