Diretório de artigos
1. Exemplo de objeto de função predefinido - classifique os elementos do contêiner de grande para pequeno
Primeiro, algoritmo de classificação de classificação
A Biblioteca de Modelos Padrão C++ (STL, Biblioteca de Modelos Padrão) fornece a função de algoritmo de classificação, que é definida no arquivo de cabeçalho <algorithm> e é um algoritmo genérico;
O algoritmo de classificação é usado para classificar elementos em um contêiner . Este algoritmo é muito eficiente e pode classificar elementos dentro de um determinado intervalo de iterador , e a ordem de classificação pode ser definida com base em uma função de comparação especificada pelo usuário;
A função de comparação especificada pelo usuário é um predicado binário;
O protótipo da função da regra de classificação padrão do algoritmo std::sort é o seguinte:
template< class RandomIt >
void sort( RandomIt first, RandomIt last );
- RandomIt primeiro, RandomIt últimos parâmetros: Esta função aceita dois iteradores de acesso aleatório first e last , que definem o intervalo de sequência que precisa ser classificado.Nota: Este intervalo é um intervalo frontal fechado e depois aberto;
- Regras de comparação padrão: Os elementos neste intervalo serão comparados e classificados usando o operador < por padrão . Se uma classe personalizada não implementar a função sobrecarregada do operador <, um erro poderá ser relatado;
O protótipo da função da regra de classificação personalizada do algoritmo std::sort é o seguinte:
template< class RandomIt, class Compare >
void sort( RandomIt first, RandomIt last, Compare comp );
- RandomIt primeiro, RandomIt últimos parâmetros: Esta função aceita dois iteradores de acesso aleatório first e last , que definem o intervalo de sequência que precisa ser classificado; Nota: Este intervalo é um intervalo frontal fechado e depois aberto;
- Regra de comparação personalizada Comparar parâmetro comp: Este parâmetro é um predicado binário, ou seja, um objeto de função que recebe 2 parâmetros e retorna um valor bool; os elementos neste intervalo serão classificados usando esta regra de predicado binário;
2. Objeto de função maior predefinido
A Biblioteca de Modelos Padrão C++ (STL, Biblioteca de Modelos Padrão) fornece o objeto de função predefinido maior<T> , que é um predicado binário . Com a ajuda deste objeto de função, dois valores podem ser comparados de maneira conveniente para determinar o primeiro valor.É maior que o segundo valor;
Este objeto de função é usado principalmente em algoritmos STL para controlar a ordem de classificação, condições de pesquisa e outros cenários;
O objeto de função maior<T> é definido no arquivo de cabeçalho <funcional> e aceita um parâmetro de tipo genérico T, que especifica o tipo de elemento a ser comparado;
O objeto de função maior<T> sobrecarrega internamente o operador de chamada de função operador(), de modo que os objetos de instância desta classe possam ser chamados como funções comuns;
2. Exemplos de código - objetos de função predefinidos
1. Exemplos de código
Exemplo de código:
#include "iostream"
using namespace std;
#include <vector>
#include <algorithm>
#include "functional"
int main() {
// 创建一个 set 集合容器
vector<int> myVector;
// 向容器中插入元素
myVector.push_back(9);
myVector.push_back(5);
myVector.push_back(2);
myVector.push_back(7);
// 向 foreach 循环中传入 Lambda 表达式
for_each(myVector.begin(), myVector.end(), [](int a) {
std::cout << a << " ";
});
cout << endl;
// 将 myVector 容器中的元素按照从大到小的顺序排列
sort(myVector.begin(), myVector.end(), greater<int>());
// 向 foreach 循环中传入 Lambda 表达式
for_each(myVector.begin(), myVector.end(), [](int a) {
std::cout << a << " ";
});
cout << endl;
// 控制台暂停 , 按任意键继续向后执行
system("pause");
return 0;
};
2. Resultados de execução
Resultados do:
9 5 2 7
9 7 5 2
Pressione qualquer tecla para continuar. . .