按长度排序向量字符串

问题描述 投票:0回答:1

我写了一个按长度对向量字符串进行排序的代码。不幸的是,我不确定它是否可以以此形式在下一个标准中工作。这是C ++ 20中正确的代码吗?

#include <algorithm>
#include <iostream>
#include <string>
#include <ranges> 
#include <vector>

int main() {
    std::vector<std::string> words = {"std", "vector", "string", "optional", "clamp"};

    // C++11
    // std::sort(words.begin(), words.end(), 
    //     [](auto& lhs, auto& rhs) { return lhs.length() < rhs.length(); });

    // maybe C++20?
    using namespace std::ranges;
    sort(words, {}, size); // or 'sort(words, less{}, size);'

    for (auto& word : words) {
        std::cout << word << "\n";
    }
}
c++ sorting stl c++20
1个回答
0
投票

您的代码很好,可以在即将到来的GCC 10下编译。

正如@Ayxan指出的那样,C ++ 20仍将具有通常的算法,因此,如果不需要,您不需要更改代码。

© www.soinside.com 2019 - 2024. All rights reserved.