"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como classificar com eficiência um vetor de pares pelo segundo elemento?

Como classificar com eficiência um vetor de pares pelo segundo elemento?

Postado em 2025-02-26
Navegar:521

How to Efficiently Sort a Vector of Pairs by the Second Element?

como classificar com eficiência um vetor de pares pelo segundo elemento do par de pares

este artigo aborda a questão de classificar um vetor de pares com base no segundo elemento de cada par em ordem crescente. Ao criar um objeto de função personalizado para esta tarefa é uma solução viável, existem métodos alternativos que utilizam componentes STL existentes e STD :: menos.

Uma abordagem é empregar um comparador personalizado como um terceiro argumento opcional para STD :: Sort. Este comparador personalizado, chamado Sort_Pred, é definido da seguinte operador bool () (const std :: par & lt; int, int & gt; & amp; esquerda, const std :: par & lt; int, int & gt; & amp; à direita) { retornar à esquerda.SECOND & LT; Right.SECOND; } }; Para utilizar esse comparador, basta passar para std :: sty:

std :: stor

struct sort_pred {
    bool operator()(const std::pair<int,int> &left, const std::pair<int,int> &right) {
        return left.second < right.second;
    }
};
usando C 11 Lambdas

std::sort(v.begin(), v.end(), sort_pred());

std :: Sort (v.begin (), v.end (), [] (const std :: par & lt; int, int & gt; & amp; esquerda, const, const, std :: par & lt; int, int & gt; retornar à esquerda.SECOND & LT; Right.SECOND; });

usando um modelo genérico para classificação de pares

Com este modelo, você pode alcançar a classificação desejada da seguinte ());
            
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3