Diferencia entre directivas de preprocesador y plantillas de funciones en C++

Las directivas de preprocesador son programas que procesan nuestro código fuente antes de la compilación. Hay una serie de pasos involucrados entre escribir un programa y ejecutar un programa en C/C++. A continuación se muestra el programa para ilustrar la funcionalidad de las plantillas de funciones: C++ // C++ program to illustrate // preprocessor directives … Continue reading «Diferencia entre directivas de preprocesador y plantillas de funciones en C++»

Implementando Stack usando plantillas de clase en C++

La tarea es implementar algunas funciones importantes de la pila como pop(), push(), display(), topElement(), isEmpty(), isFull() usando la plantilla de clase en C++. Stack es una estructura de datos lineal que sigue un orden particular en el que se realizan las operaciones. El orden puede ser LIFO (Last In First Out) o FILO (First … Continue reading «Implementando Stack usando plantillas de clase en C++»

Plantilla de argumentos sin tipo en C++

Requisito previo: Plantillas en C++ En general, una plantilla de C++, con un solo argumento, se ve así: template<tipo de nombre template_name> Pero se ha visto que una plantilla puede tener múltiples argumentos. La sintaxis del mismo sería: plantilla<clase T1, clase T2, clase T3, ………, clase Tn> donde, n es el número de argumentos. También … Continue reading «Plantilla de argumentos sin tipo en C++»

Cómo iterar sobre los elementos de un std::tuple en C++

Una tupla de C++ es un contenedor que puede almacenar múltiples valores de múltiples tipos en él. Podemos acceder a los elementos de la tupla usando std::get() , pero std::get() siempre toma un parámetro de variable constante, por lo que no podemos simplemente iterarlo usando un bucle. Para tareas que requieren iterar a través de … Continue reading «Cómo iterar sobre los elementos de un std::tuple en C++»

C++ | Plantillas | Pregunta 2

¿Predecir la salida? #include <iostream> using namespace std;    template <typename T> void fun(const T&x) {     static int count = 0;     cout << «x = » << x << » count = » << count << endl;     ++count;     return; }    int main() {     fun<int> (1);      cout << endl;     fun<int>(1);      cout << endl;     fun<double>(1.1);     cout … Continue reading «C++ | Plantillas | Pregunta 2»

C++ | Plantillas | Pregunta 10

Salida del siguiente programa. #include <iostream> using namespace std;    template <class T, int max> int arrMin(T arr[], int n) {    int m = max;    for (int i = 0; i < n; i++)       if (arr[i] < m)          m = arr[i];       return m; }    int main() {    int arr1[]  = {10, 20, 15, … Continue reading «C++ | Plantillas | Pregunta 10»

C++ | Plantillas | Pregunta 1 – Part 1

¿Cuál de los siguientes es cierto acerca de las plantillas. 1) Plantilla es una característica de C++ que nos permite escribir un código para diferentes tipos de datos. 2) Podemos escribir una función que se puede usar para todos los tipos de datos, incluidos los tipos definidos por el usuario. Como sort(), max(), min(), ..etc. … Continue reading «C++ | Plantillas | Pregunta 1 – Part 1»

C++ | Plantillas | Pregunta 3

#include <iostream> using namespace std;    template <typename T> T max(T x, T y) {     return (x > y)? x : y; } int main() {     cout << max(3, 7) << std::endl;     cout << max(3.0, 7.0) << std::endl;     cout << max(3, 7.0) << std::endl;     return 0; } (A) 7 7.0 7.0 (B) Error del compilador … Continue reading «C++ | Plantillas | Pregunta 3»

C++ | Plantillas | Pregunta 8

¿Producción? #include <iostream> using namespace std;    template <int i> void fun() {    i = 20;    cout << i; }    int main() {    fun<10>();    return 0; } (A) 10 (B) 20 (C) Error del compilador Respuesta: (C) Explicación: Error del compilador en la línea “i = 20;” Los parámetros que no son de tipo … Continue reading «C++ | Plantillas | Pregunta 8»

C++ | Plantillas | Pregunta 6

Salida del siguiente programa? Suponga que el tamaño de int es de 4 bytes y el tamaño de double es de 8 bytes, y el compilador no realiza ninguna alineación. #include<iostream> #include<stdlib.h> using namespace std;    template<class T, class U, class V=double> class A  {     T x;     U y;     V z;     static int count; }; … Continue reading «C++ | Plantillas | Pregunta 6»