← index
cplusplus11.Examples/algorithm/sort.cpp
Source: cplusplus11.Examples/algorithm/sort.cpp
/* Will ask for series of usernames
   then print out the sorted list by last name */

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>

class User {
public:
    User(const std::string &f, const std::string &l) : first(f), last(l) {
        
    }
    User() { }
    std::string firstname() const { return first; }
    std::string lastname() const { return last; }
protected:
    std::string first, last;
};

int main() {
    char c;
    std::vector<User> users;
    
    do {
        std::cout << "Enter first name: ";
        std::string sf, sl;
        std::getline(std::cin, sf);
        std::cout << "Enter last name: ";
        std::getline(std::cin, sl);
        std::cout << "Do you wish to enter another name? y/n ";
        std::string sc;
        std::getline(std::cin, sc);
        c = sc[0];
        User u(sf,sl);
        users.push_back(u);
        
    } while(c == 'y' || c == 'Y');
    
    std::cout << "Sorted: \n";
    
    std::sort(users.begin(), users.end(), [](const User &u1, const User &u2) {
        return (u1.lastname()<u2.lastname());
    });
    
    for (auto &i : users) {
        std::cout << i.lastname() << ", " << i.firstname() << "\n";
    }
    
    return 0;
}