sort( a + l, a + r)
    [l, r) 升序

sort( a + l, a + r, greater<int>())
    降序

sort( a + l, a + r, cmp)

结构体      
bool cmp ( 结构体 a, 结构体 b )
{
    if( a.x > b.x )降序
        return 1;
    else if( a.x < b.x )
        return 0;
    else
    {
        ...
    }
}

支持vector和string