Найти элемент в массиве векторов

Возможный дубликат:
Как найти элемент в std::vector?

Я использую C++ Builder для создания приложения VCL Forms. У меня также есть векторный массив объектов встреч, у каждого из которых есть имя, тип, дата / время напоминания, дата / время, местоположение и комментарии.

Я хочу реализовать функцию поиска, которая позволит пользователю найти встречу по определенным критериям.

Пользователь может выбрать поиск встречи в векторном массиве, выбрав имя, тип и т. Д. Или их комбинацию.

Какую концепцию программирования лучше всего использовать в этой ситуации? Вектор не большой. Не более 10 или 20 элементов.

Спасибо

3 ответа

Решение
std::find_if(A.begin(),A.end(),isthatit(conditions));

где isthatit является объектом предиката, построенным из условий.

Использование std::find_if() и определить требуемый предикат (если C++11, вы можете использовать лямбда-функцию).

Смотрите онлайн демо http://ideone.com/Md7sp.

Если у вас много критериев, вы должны подумать о контейнере Boost.MultiIndex, который предназначен для разных поисковых индексов. http://www.boost.org/doc/libs/1_51_0/libs/multi_index/doc/tutorial/index.html

Другие вопросы по тегам