
#include <iostream>
#include<vector>
#include<functional>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string name1 = "xiaozhang";
string name2 = "zhangqiang";
string name3 = "xiaowang";
vector<string*> vecNames;
vecNames.push_back(&name1);
vecNames.push_back(&name2);
vecNames.push_back(&name3);
cout << "排序前:" << endl;
for (auto& a : vecNames)
cout << *a << endl;
cout << "排序前 地址:" << endl;
for (auto& a : vecNames)
cout << a << endl;
sort(vecNames.begin(), vecNames.end(), []( string* a, string* b) {return a<b; });
cout << "排序后:" << endl;
for (auto& a : vecNames)
cout << *a << endl;
cout << "排序后 地址:" << endl;
for (auto& a : vecNames)
cout << a << endl;
sort(vecNames.begin(), vecNames.end(), greater<string*>());
cout << "函数对象 排序后:" << endl;
for (auto& a : vecNames)
cout << *a << endl;
cout << "函数对象 排序后 地址:" << endl;
for (auto& a : vecNames)
cout << a << endl;
}