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

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

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

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

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

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

Спасибо

1

Решение

std::find_if(A.begin(),A.end(),isthatit(conditions));

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

1

Другие решения

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

Посмотреть онлайн демо http://ideone.com/Md7sp.

2

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

0
По вопросам рекламы [email protected]