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

сортировка структур массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему не сортируется массив? http://www.cyberforum.ru/cpp-beginners/thread962428.html
using namespace std; void scan(int * mass) { for( int i = 0; i < 10; i++) { cin >> mass ; } } void print ( int * mass ) {
C++ По введенному номеру времени года выдать месяцы, количество дней в каждом из месяцев Программа по введенному номеру времени года (1 - зима, 2 - весна, 3 - лето, 4 - осень) должна выдавать соответствующие этому времени года месяцы, кол-во дней в каждом из месяцев. http://www.cyberforum.ru/cpp-beginners/thread962418.html
Не работает код C++
Ввести в структуру сведения о студентах, содержащие следующую информацию: фамилия и имя. Осуществить ввод и вывод структурных переменных. Работу программы организовать при помощи меню. Как на мой...
Проверка введенных данных C++
Всем привет! Подскажите пожалуйста, каким образом можно проверить веденные данные при запросе цифр? То есть нужно проигнорить если ввели буквы и скушать если цифры...
C++ Программный код для Dev-C++ (вычисление значений функции) http://www.cyberforum.ru/cpp-beginners/thread962413.html
Помогите чайнику, пожалуйста. F(x)=\begin{cases}-3x+9,& \text{ if } x\preceq 7 \\ \frac{1}{x-7},& \text{ if } x\succ 7 \end{cases} 2 знака равно (=) - лишние.
C++ Дан массив а из 10 символов, массив b из 10 символов, и с = a+b Дан массив а из 10 символов, массив b из 10 символов, и с = a+b. Нужно отсортировать любой сортировкой, например: Сортировка слиянием или Быстрая сортировка. Помогите пожалуйста, я не понимаю... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
25.09.2013, 21:35
Цитата Сообщение от Lesya_13 Посмотреть сообщение
как-то сильно сложно, можно что то по проще, мы такого не учили еще
Если просят сортировку по 2-м полям должны были и дать что-то. Если писать вручную, только сложнее будет. Вот нашел пример, где сортировка по 2-м полям умнее, но чуть сложнее. Функция сравнения позволяет при совпадении значений параметра сортировки сортировать по второму параметру. То есть если номера совпали, то по имени, а если имена совпали то номеру:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <windows.h>
using namespace std;
struct Student
{   
    string name;
    int month;    
    Student();
    Student(const string n, int month_);
    
     void show(){cout<<name<<" "<<month<<endl;};
     ~Student(){};
static  int Compirer(Student *one, Student *two);
};
 
int Student::Compirer(Student *one, Student *two){//тут смотрите
    if(one->month == two->month)
        return (one->name.compare(two->name.c_str())>0)? 0:1;
    else
        return (one->month > two->month)? 0 : 1;
}
 
Student::Student()
{}
Student::Student(const string n, int id_):name(n), month(id_)
{}
 
int main(){
SetConsoleCP (1251); SetConsoleOutputCP (1251);
Student st("Vasya", 1);
Student st1("Basya", 2);
Student st2("Basya", 3);
Student st3("Alice", 3);
Student st4("Sonya", 4);
Student st5("Sonya", 2);
vector<Student*> stvec;
stvec.push_back(&st);
stvec.push_back(&st1);
stvec.push_back(&st2);
stvec.push_back(&st3);
stvec.push_back(&st4);
stvec.push_back(&st5);
size_t sz = stvec.size();
cout<<"\nВведено в порядке:"<<endl;
//---------------------------
for(size_t i = 0; i < sz; ++i) {
    stvec[i]->show();
}
sort(stvec.begin(), stvec.end(), &Student::Compirer);
cout<<"\nОтсортировано в порядке:"<<endl;
//---------------------------
for(size_t i = 0; i < sz; ++i) {
    stvec[i]->show();
}
 
cin.get();   
return 0;
}
Смелее, тут ничего нет особенного. Тем более, что если от Вас требуют такое задание, то это для Вас пустяки.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru