Re: Сортировка массива структур
От: Аноним  
Дата: 09.12.03 07:49
Оценка:
Здравствуйте, __pavel, Вы писали:

__> struct my_struct

__> {
__> char name[20];
__> int age;
__> } entry[20];

__>Заполняю с клавиатуры массив структур entry, а затем его необходимо вывести в порядке убывания возраста.

__> printf(entry[...].name, entry[...].age);
__>Вопрос состоит в следующем: как его отсортировать, ну скажем способом bubble ?
__>Если можно, то по-подробнее, в C++ я начинающий.

пример номер 1
--------------

struct my_struct
{
char name[20];
int age;

bool operator< (my_struct const& right)
{
return age < right.age;
}
};

typedef std::list<my_struct> entry;

int main()
{
entry elist;

// заполнение
// ...

elist.sort();
}

пример номер 2
--------------

struct my_struct
{
char name[20];
int age;
}

bool operator< (my_struct const& left, my_struct const& right)
{
return left.age < right.age;
}

typedef std::list<my_struct> entry;

int main()
{
entry elist;

// заполнение
// ...

elist.sort(std::less<my_struct>());
}


пример номер 3
--------------

struct my_struct
{
char name[20];
int age;
}

typedef std::list<my_struct> entry;

struct age_less
: public std::binary_function<my_struct, my_struct, bool>
{
bool operator()(my_struct const& left, my_struct const& right)
{
return left.age < right.age;
}
};

int main()
{
entry elist;

// заполнение
// ...

elist.sort(age_less());
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.