Форум программистов, компьютерный форум, киберфорум
Наши страницы

std::sort + std::lower_bound - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Организация циклов в C++ http://www.cyberforum.ru/cpp-beginners/thread433953.html
Не могу никак справиться с этим заданием: Дано натуральное число N: опредилить наименьшую цифру с чётным номером Оч нужна помощь. Заранее спасибо за уделение времени моему вопросу Добавлено...
C++ Аргументы функции main() Написать программу для определения, чередуются ли в данной последовательности символы ‘+’ и ‘-‘, и сколько раз каждый из этих символов входит в эту последовательность. Собственно определение... http://www.cyberforum.ru/cpp-beginners/thread433938.html
Добавление флага в алгоритм сортировки способом пузырька (С++) C++
Всем добрый вечер. Помогите пожалуйста добавить флажок в этот алгоритм. Идея – если при выполнении метода пузырька не было обменов, массив уже отсортирован и остальные проходы не нужны. Реализация:...
Отсортировать строки массива целых чисел по убыванию. C++
Отсортировать строки массива целых чисел по убыванию.
C++ Подсчитайте количество элементов одномерного массива, которые совпадают со своим номером http://www.cyberforum.ru/cpp-beginners/thread433917.html
Подсчитайте количество элементов одномерного массива, которые совпадают со своим номером и при этом кратны 3
C++ подпрограммы Найти три таких простых числа, чтобы их сумма была в 5 раз меньше их произведения. подробнее

Показать сообщение отдельно
Healius
4 / 4 / 0
Регистрация: 06.05.2011
Сообщений: 50

std::sort + std::lower_bound - C++

23.01.2012, 22:26. Просмотров 3143. Ответов 20
Метки (Все метки)

тема такая: есть класс person:
C++
1
2
3
4
5
class Person{
private:
    string name_;
    string adress_;
    long phone_;
есть вектор объектов этого класса. надо сделать быстрый поиск по полям этого класса в векторе
решил делать сортировку вектора с предикатами по каждому полю, слияния, а потом lower_bound
C++
1
2
3
4
5
void search_name(string name){
        std::sort(pV.begin(),pV.end(),compare_name);
        vector<Person>::iterator i=lower_bound(pV.begin(),pV.end(),Person(name,"",0));
        cout<<*i<<endl;
        }
предикат:
C++
1
2
3
bool compare_name(Person& obj1,Person& obj2){
    return obj1.get_name()<obj2.get_name();
}
сортировка работает только по имени, и при любом вводе выдает первый элемент. как исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru