// Uppgift: Läser in rader med förnamn efternamn, och skriver ut en lista sorterad på förnamn och en på efternamn // Nyckelord: std::vector, std::pair, std::istringstream, iteratorer, std::getline, formaterat inmatning, std::sort, lambda-funktion #include #include #include #include #include using namespace std; int main() { cout << "Mata in ett förnamn och efternamn på varje rad. " << "Avsluta med Ctrl-D." << endl; pair name; vector< pair > namelist; string line; while ( getline(cin, line) ) { istringstream iss(line); if ( iss >> name.first >> name.second ) { namelist.push_back(name); } } vector< pair >::const_iterator i; cout << "Sortering på förnamn: " << endl; sort(namelist.begin(), namelist.end()); for (i = namelist.begin(); i != namelist.end(); ++i) { cout << i->first << " " << i->second << endl; } cout << "Sortering på efternamn: " << endl; sort(namelist.begin(), namelist.end(), [](pair a, pair b)->bool { return a.second < b.second; }); for (i = namelist.begin(); i != namelist.end(); ++i) { cout << i->second << ", " << i->first << endl; } return 0; }