2017-06-06 84 views
-5

如何獲取一個完整的字符串並按字長重新排序,其次按字母順序排列,如果有兩個長度相同的字。按長度排序向量中的字符串

我認爲一個基於範圍的循環會使用一個計數器並將其與計數器值加1進行比較,但這並不能解決字母順序問題。我知道有一堆STL算法可以幫助我編寫這個算法,但是我對Python的C++不熟悉,並且不知道如何使用它們。

回答

3

使用std::sort使用自定義比較:

std::sort(
    v.begin(), 
    v.end(), 
    [](const std::string& a, const std::string& b) { 
     return a.size() < b.size() || a.size() == b.size() && a < b; 
});