Здравствуйте, __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());
}