Na Biblioteca Padrão do C++ , algoritmos são componentes que executam operações algorítmicas em contêineres e outras sequências.
O padrão C++ fornece alguns algoritmos padrão coletados no cabeçalho padrão: <algorithm>
. Vários algoritmos também estão no cabeçalho: <numeric>
. Todos os algoritmos estão no namespace std
.
São quase 100 funções disponíveis entre elas há essa lista:
none_of
Esta função opera em toda a gama de elementos do array e verifica se há uma determinada propriedade em cada elemento e retorna true quando nenhum elemento no intervalo satisfaz a propriedade especificada, caso contrário, retorna false.
#include <vector>
#include <algorithm>
#include <iostream>
int main() {
std::vector<int> v {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
if (std::none_of(v.begin(), v.end(), [](int i){ return i % 2 == 0; })){
std::cout << "Não há nenhum número par nesse vector.\n";
}else{
std::cout << "Nesse vetor há pelo menos 1 número PAR.\n";
}
return 0;
}
remove_if
Remove os elementos do intervalo (primeiro, último) que satisfaçam uma condição e retorne um novo iterador passado para o novo final do intervalo.
#include <vector>
#include <algorithm>
#include <iostream>
int main() {
auto isOdd = [](int i) {
return (( i % 2 ) == 1);
};
std::vector<int> v {1, 2, 3, 4, 5};
// Remove todos os elementos que é verdadeiro de acordo com isOdd
auto newEndIt = std::remove_if(v.begin(), v.end(), isOdd);
// Limpa os elementos
v.erase(newEndIt, v.end());
// v agora é: 2 e 4
for (auto value : v) {
std::cout << value << " ";
}
std::cout << '\n';
return 0;
}
random_shuffle
Ele reorganiza aleatoriamente os elementos no intervalo [primeiro, último]. A função troca o valor de cada elemento por algum outro elemento escolhido aleatoriamente. Quando fornecida, a função determina qual elemento é selecionado em cada caso. Caso contrário, a função usa alguma fonte não especificada de aleatoriedade.
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
int myrandom (int);
int main() {
std::srand(unsigned(time(0)));
std::vector<int> mylist;
for (int j = 1; j < 10; ++j){
mylist.push_back(j);
}
std::random_shuffle(mylist.begin(), mylist.end());
std::random_shuffle(mylist.begin(), mylist.end(), myrandom);
std::cout << "mylist contém:";
for (auto i = mylist.begin(); i != mylist.end(); ++i){
std::cout << ' ' << *i;
}
std::cout << "\n";
return 0;
}
int myrandom (int i) {
return std::rand() % i;
}
Algumas outras funções dessa biblioteca já falamos no cpp::daily e mais informações você pode obter aqui.
Por hoje é só!
Então se inscreva nos nossos Cursos de C++ Moderno . Você aprender criar:
Acesse o endereço: