El bit_or es una función incorporada en C++ que se usa para realizar bitwise_or y devolver el resultado después de aplicar la operación bitwise_or en sus argumentos.
Archivo de cabecera:
#include <functional.h>
Clase de plantilla:
template <class T> struct bit_or;
Parámetros: Acepta un parámetro T que es el tipo de argumento a comparar por la llamada funcional.
Nota:
- Los objetos de esta clase se pueden usar en algoritmos estándar como transformar o acumular.
- Las funciones miembro (‘operador()’) devuelven el bitwise_or de sus argumentos.
Debemos incluir la biblioteca ‘funcional’ y ‘algoritmo’ para usar bit_or y transform() respectivamente.
A continuación se muestra la ilustración de bit_or en C++:
Problema 1:
// C++ program to show the // functionality of bit_or #include <algorithm> // to include transform #include <functional> // to include bit_or #include <iostream> #include <iterator> using namespace std; int main() { // declaring the values int xyz[] = { -7, 2, 5, 100, 1029 }; int abc[] = { -4, 0, 5, 1, 1 }; int n = 5; // defining results int results[n]; // transform is used to apply // bitwise_or on the arguments transform(xyz, end(xyz), abc, results, bit_or<int>()); // printing the resulting array cout << "Results:"; for (const int& x : results) cout << ' ' << x; return 0; }
Producción:
Results: -3 2 5 101 1029
Algunos puntos para recordar
- Bitwise_or de un número con cero resultados en el propio número.
- Bitwise_or de dos números iguales también es igual a ese número en sí
- Si el número es impar es bit_or con 1 resultará en el mismo número
- Si el número es par , es bit_or con 1 siempre resultará en «número + 1»
Problema 2:
// C++ program to show the // functionality of bit_or #include <algorithm> #include <functional> #include <iostream> #include <iterator> using namespace std; int main() { // declaring the values // in form of hexadecimals int xyz[] = { 0, 1100 }; int abc[] = { 0xf, 0xf }; // defining results int results[2]; // transform is used to apply // bitwise_or on the arguments transform(xyz, end(xyz), abc, results, bit_or<int>()); // printing the resulting array cout << "Results:"; for (const int& x : results) cout << ' ' << x; return 0; }
Producción:
Results: 15 1103
Referencia: https://en.cppreference.com/w/cpp/utility/funcional/bit_or