С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 25.01.2014
Сообщений: 17
1

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

10.02.2014, 14:46. Показов 813. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите написать предикат 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");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2014, 14:46
Ответы с готовыми решениями:

Сортировка функцией Array.Sort
Даже числа не выводит,чес слово. Что исправить? static void Main(string args) { ...

Сортировка массива объектов функцией sort
Не получается отсортировать массив объектов. После сортировки должен вывестись список...

Сортировка std::list с функцией sort()
У меня задание написать Отсортировать числовую последовательность в порядке возрастания...

Сортировка объектов функцией sort() по данным объекта
Есть класс Man, при создании его объекта в вектор &quot;люди&quot; должно заносить этот объект. После вызова...

8
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
10.02.2014, 14:53 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;
    }
}
0
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
10.02.2014, 14:57 3
CheshireCat, не уверен, что для string перегружен оператор < или >
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
10.02.2014, 15:01 4
Ну я там изложил идею.... Если операторы не перегружены для std::string (не помню на память, а лезть в MSDN лень ) - значит, можно тупо использовать strcmp().
0
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
10.02.2014, 15:06 5
CheshireCat, нашел. там есть функция compare, которая сравнивает в алфавитном порядке. пример использования тут
arking, кст, вместо предикатной функции можно оператор < перегрузить. это будет логичнее и правильнее.
0
Эксперт по математике/физикеЭксперт С++
2206 / 1411 / 411
Регистрация: 16.05.2013
Сообщений: 3,597
Записей в блоге: 6
10.02.2014, 15:08 6
Цитата Сообщение от metaluga145 Посмотреть сообщение
CheshireCat, не уверен, что для string перегружен оператор < или >
Можете быть уверены. Эти опрераторы перегружены.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.02.2014, 15:09 7
Цитата Сообщение от metaluga145 Посмотреть сообщение
не уверен, что для string перегружен оператор < или >
Перегружен.
http://ru.cppreference.com/w/c... sic_string
0
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
10.02.2014, 15:10 8
ладно, перегружены. нашел уже
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
10.02.2014, 15:13 9
Цитата Сообщение от metaluga145 Посмотреть сообщение
уверены, что они перегружены?
Уверен. Стандарт, 21.3.
0
10.02.2014, 15:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2014, 15:13
Помогаю со студенческими работами здесь

algorithm std::sort
Почему так делать нельзя? #include &lt;algorithm&gt; using namespace std; class T { private:...

Функция Sort библиотеки Algorithm
Какой тип сортировки используется функцией Sort библиотеки Algorithm? Если можно дайте ссылку на...

Пожскажите с функцией sort() или qsort()
Есть программа, которая генерирует случайно 10 неповторяющихся чисел от 1 до 10 и записывает их в...

Отсортировать массив по убыванию функцией sort
Привет всем. Я знаю, как отсортировать массив по возрастанию функцией sort. А как той же функцией...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru