Menú principal

lunes, 29 de junio de 2020

Comprobar números de vector con any_of en C++

Se quiere realizar un programa que nos diga si algún elemento de un vector cumple ciertas condiciones. Para ello se utilizará la función any_of implementada en la biblioteca <algorithm> . Dicha función devolverá verdadero o false en función de si la condición establecida la cumple algún numero del vector.

En este caso se comprobará si el vector declarado contiene algún numero mayor o igual a 5 de la siguiente forma.

 1  #include <iostream>
 2  #include<vector>
 3  #include<algorithm>
 4  using namespace std;
 5  
 6  int main()
 7  {
 8      vector <int> v={0,3,2,7};
 9  
10      if(any_of(v.begin(),v.end(), [](int num){if(num>5)return 1; else return 0;}))
11      //Si se cumple es que hay algun numero que es mayor que 5
12          cout << "Hay algun numero en el vector que es mayor o igual a 5"<< endl;
13      else
14          cout << "Todos los numeros del vector son menores a 5" << endl; 
15 } 

Comprobar todos los elementos de un vector (all_of) en C++

Primeramente se incluyen las cabeceras necesarias para trabajar con vectores (linea 2) y algorithm para poder utilizar la función all_of.

Seguidamente se declara el vector y se procese a comprobar si todos los números del vector son impares. Esto se realizará haciendo uso de la función all_of la cual está implementada en una sentencia condicional if. Como podemos apreciar en la linea 11 dentro el all_of necesita 3 parámetros: donde empieza el vector, donde acaba y la condición que se debe cumplir. En este caso se ha creado una función sin nombre (nomenclatura []) que devolverá 1 o un 0 en función del resto que resulta al dividir el numero entre 2.

Finalmente también se realiza una comprobación de si todos los números del vector son 5 de la misma manera a la que se ha hecho en la función de pares o impares.


 1 #include <iostream>
 2  #include <vector>
 3  #include <algorithm>
 4  using namespace std;
 5  
 6  int main()
 7  {
 8      vector<int> v={5,5,5,5};
 9  
10      //Comprobar si todos los numeros son pares o impares
        //Si el resto es 1 (impar) devuelve 1, la condicion es verdadera
11      if(all_of(v.begin(),v.end(),[](int i){return i%2;})) 
12          cout << "Todos los numeros son impares" << endl;
13      else
14          cout << "Hay algun numero en el vector que es par" << endl;
15  
16      //Comprobar si todos los numeros son 5
17      if(all_of(v.begin(),v.end(),[](int i){if(i==5)return 1; else return 0;}))
18          cout << "Todos los numeros del vector son 5" << endl;
19      else
20          cout << "Hay algun numero que no es 5" << endl;
21  }

Introducir y mostrar números de vector en C++

 1 #include <iostream>
 2  #include <vector>
 3  #include<algorithm>
 4  using namespace std;
 5  
 6  int main()
 7  {
 8      cout << "Numero de elementos del vector: ";
 9      int elementos;
10      cin >> elementos;
11  
12      vector<int> v;
13      int i;
14      
15      //Solicitar tantos numeros como elementos haya introducido el usuario
16      for(i=0; i<elementos; i++)
17      {
18          int num;
19          cout << "Intro numero: ";
20          cin >> num;
21          v.push_back(num);
22      }
23  
24      //Mostrar vector
25      cout << endl << "El vector es: " ;
26      for(auto x:v)
27          cout << x << " ";
28  
29      cout << endl << "El vector tiene " << i << " elementos" << endl ;
30  
31  }