Colocación de un nuevo operador en C++

Placement new es un nuevo operador de variación en C++. El nuevo operador normal hace dos cosas: (1) Asigna memoria (2) Construye un objeto en la memoria asignada. La colocación nueva nos permite separar las dos cosas anteriores. En la ubicación nueva, podemos pasar una memoria preasignada y construir un objeto en la memoria pasada.   nueva … Continue reading «Colocación de un nuevo operador en C++»

Modismo de copiar e intercambiar en C++

Antes de profundizar, primero echemos un vistazo al ‘operador de asignación sobrecargado’ normal que usamos. // Simple C++ program to demonstrate overloading of // assignment operator. #include <iostream> #include <cstring> using namespace std;    class anyArrayClass {     int size;     int *ptr; public:        // Initializer list     anyArrayClass(int s=0):size(s),         ptr(size? new int[size]:nullptr) {}        // Copy … Continue reading «Modismo de copiar e intercambiar en C++»

C++ avanzado con biblioteca Boost

Las bibliotecas Boost están diseñadas para ser ampliamente útiles y utilizables en una amplia gama de aplicaciones. Por ejemplo, son útiles para manejar números grandes que tienen un rango más allá del tipo de datos long long, long double (2 64 ) en C++.  Instalación Consulte este artículo para la instalación de boost. Podemos descargar … Continue reading «C++ avanzado con biblioteca Boost»

Expresión lambda en C++

C++ 11 introdujo la expresión lambda para permitirnos escribir una función en línea que se puede usar para fragmentos cortos de código que no se van a reutilizar y que no vale la pena nombrar. En su forma más simple, la expresión lambda se puede definir de la siguiente manera:  [ capture clause ] (parameters) … Continue reading «Expresión lambda en C++»

Foreach en C++ y Java

El bucle Foreach se utiliza para iterar sobre los elementos de un contenedor (array, vectores, etc.) rápidamente sin realizar la inicialización, la prueba y el incremento/decremento. El funcionamiento de los bucles foreach es hacer algo para cada elemento en lugar de hacer algo n veces. No hay un bucle foreach en C, pero tanto C++ … Continue reading «Foreach en C++ y Java»

reinterpret_cast en C++ | Tipo Operadores de fundición

reinterpret_cast es un tipo de operador de conversión utilizado en C++.   Se utiliza para convertir un puntero de algún tipo de datos en un puntero de otro tipo de datos, incluso si los tipos de datos antes y después de la conversión son diferentes. No verifica si el tipo de puntero y los datos señalados … Continue reading «reinterpret_cast en C++ | Tipo Operadores de fundición»

clase std::string_view en C++17

El std::string tiene algunas desventajas, una de las situaciones más comunes son las strings constantes. A continuación se muestra el programa que demuestra el problema que se produce al tratar strings constantes con std::string: Programa 1: C++ // C++ program to demonstrate the // problem occurred in string #include <iostream> #include <string> using namespace std; … Continue reading «clase std::string_view en C++17»

Comportamiento indefinido en C y C++

Cuando ejecutamos un código, a veces vemos resultados absurdos en lugar del resultado esperado. Por lo tanto, en la programación C/C++, el comportamiento indefinido significa que el programa no se puede compilar o puede ejecutarse incorrectamente, falla o genera resultados incorrectos, o cuando fortuitamente puede hacer exactamente lo que el programador pretendía. Siempre que el … Continue reading «Comportamiento indefinido en C y C++»

C++ 17 | Nuevas formas de asignar valores a las variables

C++ 17 introdujo muchas formas nuevas de declarar una variable. La asignación y declaración anteriores se hacían usando “=” Ejemplo: int a = 5; Pero ahora se introducen 2 formas más en C++17 . Están: Inicialización del constructor: De esta forma, el valor de la variable se encierra entre paréntesis (()). De esta forma, el … Continue reading «C++ 17 | Nuevas formas de asignar valores a las variables»

vector erase() y clear() en C++

Los vectores son lo mismo que las arrays dinámicas con la capacidad de cambiar su tamaño automáticamente cuando se inserta o elimina un elemento, y el contenedor maneja automáticamente su almacenamiento. vector::clear() La función clear() se utiliza para eliminar todos los elementos del contenedor de vectores, haciéndolo así de tamaño 0. Sintaxis:  vectorname.clear() Parameters : … Continue reading «vector erase() y clear() en C++»