Witam,
Chciałbym posortować tablicę przy użyciu std::array, lecz niestety coś nie chce działać.
Kod:
#include <iostream>
#include <algorithm>
#include <array>
using namespace std;
struct Human
{
char name[11];
unsigned age;
bool operator>(const Human& x)const
{
return age > x.age;
}
};
int main()
{
array<Human, 3> tab{
"K", 18,
"J", 17,
"M", 25,
};
sort(tab.begin(), tab.end()); //pewnie tutaj jest błąd :(
for (short unsigned c{}; c < 3; ++c)
{
cout << tab[c].name << ' ' << tab[c].age << '\n';
}
cin.ignore();
return 0;
}
Gdy używam tablic statycznych (zwykłych) wszystko działa (no, ale troszkę kod jednak się zmienia, lecz nie znacząco), gdy próbuję zrobić to samo z tablicami std::array to nie potrafię temu zaradzić.
Przyznam się szczerze, że trochę idę z tym kodem na ciemno, bo sam do końca nie rozumiem np tej linijki:
bool operator>(const Human& x)const
Jeżeli ktoś mógłby wytłumaczyć wszystko w przystępny sposób będę bardzo wdzięczny :)
Pozdrawiam! :)