Może innaczej: jak posortować zmienne w tablicy struktur.
0
0
Według czego posortować i dlaczego kod nie jest sformatowany?
0
Wedlug pól li w tablicy
0
- zapoznaj się z pojęciem formatowania kodu: http://4programmers.net/Forum/998482
- Zlikwiduj smrodek przy inkrementacji: http://4programmers.net/Forum/1101404
- Wstaw kod do znaczników
<``code=cpp>
tu kod<``/code>
- Doprowadź do stanu kompilowalności - jeżeli nie umiesz to wróć do książki lub kursu
1
Wystarczy podać do std::sort komparator (np. lambdę) albo przeładować operator< w strukturze
#include <iostream>
#include <string>
#include <iterator>
#include <algorithm>
#include <vector>
using namespace std;
struct Osoba
{
size_t wiek;
string imie;
bool operator<( const Osoba &rhs ) const
{
return wiek < rhs.wiek;
}
};
std::ostream& operator<<(std::ostream& s, const Osoba& osoba)
{
return s << osoba.wiek << " " << osoba.imie;
}
int main() {
vector<Osoba> osoby{
{ 19, "mateusz" },
{ 13, "jan" },
{ 20, "matek" },
{ 200, "cos" },
{ 133, "asia" }
};
sort( osoby.begin(), osoby.end() );
copy( osoby.begin(),
osoby.end(),
ostream_iterator<Osoba>( cout, "\n" ) );
return 0;
}
0
Dzięki o to mi chodziło