string に qsort って、未定義だろ。
string::swap() は規格に載ってる。
sort が swap 使っていいかどうかは不明。