Templates


A Function Template

It is a generic function that has parts that can be replaced so that it can be used with different data types thus the function template defines a family of functions.
Es una función genérica que tiene partes que pueden ser reemplazadas de tal forma que ésta puede ser usada con diferentes tipos de datos así la plantilla de la función define una familia de funciones.

Problem 1
Create a Wintempla dialog application called FindSomething to test a function template for the binary search. Note that this problem can also be used using the std::binary_search template function from the STL. Add a header file to your project called BinarySearch.
Cree una aplicación de diálogo de Wintempla llamada FindSomething para probar una plantilla de una función para una búsqueda binaria. Note que este problema también puede usar la función plantilla std::binary_search de la STL. Agregué un archivo de encabezado a su proyecto llamado BinarySearch.

BinarySearch.h
#pragma once
template <class type> int BinarySearch(type data[], type value, int left, int right)
{
     int middle;
     while (left <= right)
     {
          middle = (left + right) / 2;
          if (value == data[middle])
               return middle;
          else if (value < data[middle])
               right = middle - 1;
          else
               left = middle + 1;
     }
     return -left;
}


FindSomething.cpp
. . .
void FindSomething::Window_Open(Win::Event& e)
{
     double numb[10];
     numb[0] = 100.0;
     numb[1] = 101.1;
     numb[2] = 102.2;
     numb[3] = 103.3;
     numb[4] = 104.4;
     numb[5] = 105.5;
     numb[6] = 106.6;
     numb[7] = 107.7;
     numb[8] = 108.8;
     numb[9] = 109.9;
     int index = BinarySearch<double>(numb, 104.1, 0, 9);
     this->MessageBox(Sys::Convert::ToString(index), L"FindSomething", MB_OK);
}


Tip
It is possible to create class templates to create a class family. Before creating a class template review if any of the STL class templates can be used. To learn how to create class template, open the Wintempla.h file of any project and review the template classes: Sys::Array<T> and Sys::Matrix<T>.
Es posible crear plantillas para clases para crear una familia de clases. Antes de crear una plantilla para una clase revise si alguna de las plantillas de clases de la STL puede ser usada. Para aprender cómo crear una plantilla para una clase, abra el archivo Wintempla.h de cualquier proyecto y revise las clases plantilla: Sys::Array<T> and Sys::Matrix<T>.

© Copyright 2000-2021 Wintempla selo. All Rights Reserved. Jul 22 2021. Home