Форум программистов, компьютерный форум CyberForum.ru

Сортировка vectora обьектов функцией sort из algorithm - C++

Восстановить пароль Регистрация
 
arking
0 / 0 / 0
Регистрация: 25.01.2014
Сообщений: 17
10.02.2014, 14:46     Сортировка vectora обьектов функцией sort из algorithm #1
помогите написать предикат CompareStudent к функции sort

нужно чтобы вначале сортировало по Курсу, потом по Фамилии и Имени

есть класс Student
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Student
{
private:
    friend ostream& operator <<(ostream& stream, Student st);
    friend bool CompareStudent(Student St1, Student St2);
    
 
    string Name;
    string Surname;
    int Course;
    
public:
    string GetName()
    {
        return Name;
    }
    string GetSurname()
    {
        return Surname;
    }
    int GetCourse()
    {
        return Course;
    }
    void Init()
    {
        cout << "Enter Name -> ";
        cin >> Name;
        cout << "Enter Surname -> ";
        cin >> Surname;
        cout << "Enter Course -> ";
        cin >> Course;
    }
};
и Main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void main()
{   
    int countST=0;
    vector <Student> univercity;
    cout << "Enter count student-> ";
    cin >> countST;
    for (int i = 0; i < countST; ++i)
    {
        univercity.push_back(Student());
        univercity[i].Init();
    }
 
    //sort(univercity.begin(), univercity.end(), CompareStudent);
    
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2014, 14:46     Сортировка vectora обьектов функцией sort из algorithm
Посмотрите здесь:

C++ algorithm std::sort
C++ q-sort сортировка
Классы. Сортировка обьектов класса C++
Пожскажите с функцией sort() или qsort() C++
сортировка вектора sort() C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
10.02.2014, 14:53     Сортировка vectora обьектов функцией sort из algorithm #2
(не проверял)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool CompareStudent(const Student& St1, const Student& St2)
{
    if (St1.Course < St2.Course)
        return true;
    else if (St1.Course > St2.Course)
        return false;
    else {
        if (St1.Surname < St2.Surname)
            return true;
        else if (St1.Surname > St2.Surname)
            return false;
        else
            return St1.Name < St2.Name;
    }
}
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
10.02.2014, 14:57     Сортировка vectora обьектов функцией sort из algorithm #3
CheshireCat, не уверен, что для string перегружен оператор < или >
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
10.02.2014, 15:01     Сортировка vectora обьектов функцией sort из algorithm #4
Ну я там изложил идею.... Если операторы не перегружены для std::string (не помню на память, а лезть в MSDN лень ) - значит, можно тупо использовать strcmp().
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
10.02.2014, 15:06     Сортировка vectora обьектов функцией sort из algorithm #5
CheshireCat, нашел. там есть функция compare, которая сравнивает в алфавитном порядке. пример использования тут
arking, кст, вместо предикатной функции можно оператор < перегрузить. это будет логичнее и правильнее.
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
10.02.2014, 15:08     Сортировка vectora обьектов функцией sort из algorithm #6
Цитата Сообщение от metaluga145 Посмотреть сообщение
CheshireCat, не уверен, что для string перегружен оператор < или >
Можете быть уверены. Эти опрераторы перегружены.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.02.2014, 15:09     Сортировка vectora обьектов функцией sort из algorithm #7
Цитата Сообщение от metaluga145 Посмотреть сообщение
не уверен, что для string перегружен оператор < или >
Перегружен.
http://ru.cppreference.com/w/cpp/string/basic_string
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
10.02.2014, 15:10     Сортировка vectora обьектов функцией sort из algorithm #8
ладно, перегружены. нашел уже
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2014, 15:13     Сортировка vectora обьектов функцией sort из algorithm
Еще ссылки по теме:

C++ Сортировка std::list ошибка компиляции algorithm 3868 error C2784
Не работает сортировка Stl sort C++
Сортировка массива c++ std :: sort() C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
10.02.2014, 15:13     Сортировка vectora обьектов функцией sort из algorithm #9
Цитата Сообщение от metaluga145 Посмотреть сообщение
уверены, что они перегружены?
Уверен. Стандарт, 21.3.
Yandex
Объявления
10.02.2014, 15:13     Сортировка vectora обьектов функцией sort из algorithm
Ответ Создать тему
Опции темы

Текущее время: 13:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru