include() es una función de C++ que se puede usar para reconocer si todos los números en un contenedor también existen en otros contenedores. Ayuda a verificar si un conjunto es un subconjunto de otro conjunto o no, considerando que el conjunto está ordenado. Se espera que los elementos estén ordenados. Esta función se define en el archivo de encabezado <algorithm> .
Hay dos implementaciones posibles y se explican a continuación:
Sintaxis 1: Uso del operador “<“
Modelo:
template bool includes (initer1 beg1, initer1 end1, initer2 beg2, initer2 end2,)
Parámetros:
- beg1: iterador de entrada a la posición inicial de la primera secuencia ordenada.
- end1: Iterador de entrada a la posición final de la primera secuencia ordenada.
- beg2: Iterador de entrada a la posición inicial de la segunda secuencia ordenada.
- end2: Iterador de entrada a la posición final de la segunda secuencia ordenada.
Valor devuelto: verdadero, si todos los elementos del segundo contenedor se encuentran en el primer contenedor.
Tiene una complejidad de tiempo lineal.
CPP
// C++ code to demonstrate the working of includes() #include <bits/stdc++.h> using namespace std; // Driver Code int main() { // initializing 1st container vector<int> arr1 = { 1, 4, 6, 3, 2 }; // initializing 2nd container vector<int> arr2 = { 1, 2, 4 }; // sorting initial containers sort(arr1.begin(), arr1.end()); sort(arr2.begin(), arr2.end()); // using include() check if all elements // of arr2 lie in arr1 if (includes(arr1.begin(), arr1.end(), arr2.begin(), arr2.end())) cout << "All elements of 2nd container are in 1st " "container"; else cout << "All elements of 2nd container are not in " "1st container"; }
All elements of 2nd container are in 1st container
Sintaxis 2: Uso del comparador
Modelo:
template bool includes (initer1 beg1, initer1 end1, initer2 beg2, initer2 end2, Compare comp)
Parámetros:
- beg1: iterador de entrada a la posición inicial de la primera secuencia ordenada.
- end1: Iterador de entrada a la posición final de la primera secuencia ordenada.
- beg2: Iterador de entrada a la posición inicial de la segunda secuencia ordenada.
- end2: Iterador de entrada a la posición final de la segunda secuencia ordenada.
- comp: la función de comparación que devuelve un valor booleano verdadero/falso de cada elemento comparado. Esta función acepta dos argumentos. Puede ser un puntero de función o un objeto de función y no puede cambiar los valores.
Valor devuelto: verdadero si todos los elementos del segundo contenedor se encuentran en el primer contenedor.
CPP
// C++ code to demonstrate the working of // includes() #include <bits/stdc++.h> using namespace std; // comparator function bool comp(int i, int j) { return i < j; } // Driver Code int main() { // initializing 1st container vector<int> arr1 = { 1, 4, 6, 3, 2 }; // initializing 2nd container vector<int> arr2 = { 1, 2, 4 }; // sorting initial containers sort(arr1.begin(), arr1.end()); sort(arr2.begin(), arr2.end()); // using include() check if all elements // of arr2 lie in arr1 // using comparator function if (includes(arr1.begin(), arr1.end(), arr2.begin(), arr2.end(), comp)) cout << "All elements of 2nd container are in 1st " "container"; else cout << "All elements of 2nd container are not in " "1st container"; return 0; }
All elements of 2nd container are in 1st container
Aplicación: esta función se puede usar potencialmente para encontrar si un conjunto es un subconjunto de otro o se puede usar para determinar el ganador de la lotería, en un sistema en el que una persona que tiene todos los números de la lotería en su tarjeta gana la lotería. Este último se explica a continuación a través del código.
CPP
// C++ code to demonstrate the application of // includes() #include <bits/stdc++.h> using namespace std; // Driver Code int main() { // lottery numbers vector<int> lottery = { 1, 4, 6, 3, 2, 54, 32 }; // Numbers in user's card vector<int> user = { 1, 2, 4, 6 }; // sorting initial containers sort(lottery.begin(), lottery.end()); sort(user.begin(), user.end()); // using include() check if all elements // of user are present as lottery numbers if (includes(lottery.begin(), lottery.end(), user.begin(), user.end())) cout << "User has won lottery ( all numbers are " "lottery numbers )"; else cout << "User has not won the lottery"; }
User has won lottery ( all numbers are lottery numbers )
Este artículo es una contribución de Manjeet Singh. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA