#include #include #include #include #include "rules.h" using namespace std; template void PrintRuleAndList(const vector& v, const string& rule); int main() { string names[10] = {"Bob", "Fred", "Ralph", "Joe", "Wanda", "Sam", "Joanna", "billy Joe", "jennifer", "John"}; vector< string > namelist; for (int i = 0; i < 10; i++) namelist.push_back(names[i]); PrintRuleAndList(namelist, "Original name list:"); sort(namelist.begin(), namelist.end()); PrintRuleAndList(namelist, "Sorted by lexicographic ordering"); sort(namelist.begin(), namelist.end(), LengthCompare()); PrintRuleAndList(namelist, "Sorted by name length:"); sort(namelist.begin(), namelist.end(), AlphabeticCompare()); PrintRuleAndList(namelist, "Sorted in alphabetical order:"); sort(namelist.begin(), namelist.end(), LastLetterCompare()); PrintRuleAndList(namelist, "Sorted by last letter:"); } template void PrintRuleAndList(const vector& v, const string& rule) { cout << "---------------------------------\n"; cout << rule << '\n'; for (int i = 0; i < v.size(); i++) cout << v[i] << '\n'; }