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 paresCom este modelo, você pode alcançar a classificação desejada da seguinte ());
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