Sign in
or
Register
Courses
Textbook
Compiler
Contests
Topics
Computer Science. Textbook
C++. Estruturas de Dados Dinâmicos
Classificando com comparador
Classificar com comparador
Um vetor (como uma matriz) podem ser classificados usando a função
sort()
. Mas esta função classifica em ordem crescente por padrão. Para classificar uma matriz em uma ordem diferente, você precisa usar o chamado
comparator
- uma função que define a ordem de classificação comparando dois objetos .
Exemplo
Um exemplo de comparador que classifica os elementos de uma matriz em ordem crescente.
bool cmp(int primeiro, int segundo) { retorne primeiro < segundo; }
e classificando o vetor
A
usando o comparador criado:
sort(A.begin(), A.end(), cmp);
Pense nos iteradores
De acordo com a condição do problema, fica claro que é necessário aplicar a ordenação
stable
(stable), portanto, ao invés de sort, deve-se usar stable_sort.
você também pode especificar um objeto de função como um comparador, que pode ser criado antes de chamar a função de classificação.
Por exemplo:
estrutura
{
bool
operador
()(
int
a,
int
b)
const
{
devolver
a
<
b; } }cmp;