Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Быстрый поиск в std::vector<Person>, алгоритм? 
:(
    Опции темы
sergey_85
Дата 2.6.2011, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

Репутация: нет
Всего: 1



Привет!

Нужно найти данные в клиентском приложении, есть вектор, он заполняется элементами из БД. Нужно найти  элемент в векторе.  
Какой алгоритм применить?

Код


struct Person
{
     __int64 id;
     std::string name;
};

PersonRepository rep(...);

std::vector<Person> listPerson = rep.GetPersonList(1, 5);

//нужно найти персону у которой id = 9056 ?




Спасибо!


--------------------
A good design always pays off.
PM MAIL   Вверх
mes
Дата 2.6.2011, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



зависит от гарантий на расположение элементов.. если порядок не определен, то простой поиск перебором.. если упорядочен относительно ключа для поиска, то бинарный поиск..


--------------------
PM MAIL WWW   Вверх
sergey_85
Дата 2.6.2011, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

Репутация: нет
Всего: 1



Цитата(mes @ 2.6.2011,  14:19)
зависит от гарантий на расположение элементов.. если порядок не определен, то простой поиск перебором.. если упорядочен относительно ключа для поиска, то бинарный поиск..

нет там просто элементы, не словарь.
т.е.обычным for(;;)


--------------------
A good design always pays off.
PM MAIL   Вверх
xvr
Дата 3.6.2011, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(sergey_85 @  2.6.2011,  13:43 Найти цитируемый пост)
Какой алгоритм применить?

Применить другой контейнер - map например  smile 

PM MAIL   Вверх
bsa
Дата 3.6.2011, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(sergey_85 @  2.6.2011,  14:32 Найти цитируемый пост)
нет там просто элементы, не словарь.
т.е.обычным for(;;) 
нет. Нужно использовать std::find_if(), так как for(;;) - это не алгоритм.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0644 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.