Necesitamos urgentemente el código fuente de un gran programa en C (cuanto más código, mejor), con comentarios: se requiere un proceso
IntContainerlt;Tgt;::IntContainer(int size)
{
aumentarTamaño = tamaño;
cantidad=increaseSize;
recuento=0;
almacenamiento = nuevo T[cantidad]; ; "Constructor"lt;lt.storagelt;lt;endl;
}templatelt;class Tgt;
void IntContainerlt;Tgt;::add(elemento T)
{
if (countgt; = cantidad)
incremento();
almacenamiento[count] = elemento;
count;
}templatelt; class Tgt;
T IntContainer::fetch(int index) const
{
if (indexgt ;=0amp;amp;indexlt;count)
devolver almacenamiento[index];
else
devolver -1;
}
templatelt; clase Tgt;
void IntContainerlt;Tgt;::increase()
{
cantidad = aumentarTamaño; p>
p>
T * nuevoAlmacenamiento = nuevo T [cantidad];
for(int i=0; ilt; count; i)
nuevoAlmacenamiento[i ]=almacenamiento[i ];
eliminar[] almacenamiento
almacenamiento = nuevoAlmacenamiento
}
clase Tgt;
IntContainerlt;Tgt;::~IntContainer()
{
coutlt;lt; "Eliminar destructor de almacenamiento"lt;lt;storagelt;lt;endl ;
eliminar[] almacenamiento;
}
Archivo de encabezado 2: #ifndef INTCONTAINER
#define INTCONTAINER
# incluir lt ;iostreamgt;
usando el espacio de nombres std;templatelt;class Tgt;
clase IntContainer
{
privado:
T * almacenamiento;
int recuento
int qu;
antity;
int aumentarTamaño; //IntContainer(IntContainer amp; tmp); public:
IntContainer(int size=100);
~IntContainer() ; void add(T elemento);
T fetch(int index) const
int getCount() const {return count;} iterador de clase
{
privado:
IntContainer* c;
int posición;
público:
iterador(IntContainer * contenedor, bandera bool): c(contenedor)
{
if (flag == true) position = 0
if (flag == false) posición = contenedor-gt; getCount();
}
bool operador==(iterador amperio; derecha)
{
return this-gt;position == right.position;
}
operador bool!=(iterador amp; derecha)
{
devolver esta-gt;posición! = posición.derecha;
}
iterador amp; operador ()
{
posición ;
return *this;
}
operador iterador (int)
{
iterador tmp = *this;
posición;
retorno tmp;
}
int operador*()
{
retorno c-gt; buscar(posición);
}
}; iterador comenzar(){return iterador(esto, verdadero);}
final del iterador( ){return iterator(this, false);}
privado:
aumento vacío();
}; class Tgt;
IntContainerlt;Tgt;::IntContainer(int tamaño)
{
aumentarTamaño = tamaño;
cantidad=incrementarTamaño;
recuento=0;
almacenamiento = nuevo T[cantidad];
coutlt;lt;
Constructor" lt;lt;storagelt;lt;endl;
}templatelt;class Tgt;
void IntContainerlt;Tgt;::add(elemento T)
{
if (countgt )
aumentar();
almacenamiento[count] = elemento;
count;
}templatelt; class Tgt;
T IntContainerlt; Tgt gt;::fetch(int index) const
{
if (indexgt; =0amp;amp;indexlt;count)
devolver almacenamiento[índice];
else
devolver -1;
}
templatelt; clase Tgt;
void IntContainerlt;::increase()
{
cantidad = aumentarTamaño;
T * nuevoAlmacenamiento = nuevo T [cantidad];
for(int i=0; ilt; count; i)
nuevoAlmacenamiento[i]=almacenamiento[i] ;
eliminar[] almacenamiento;
almacenamiento = newStorage;
}
templatelt; clase Tgt;
IntContainerlt;Tgt;::~IntContainer()
{
coutlt;lt;"Eliminar destructor de almacenamiento"lt;lt;storagelt;lt;endl;
eliminar[] almacenamiento
}
#endifmain function #include "IntContainer.
#include lt;vectorgt;
#include lt;iostreamgt;
#include lt;numericgt;
#include lt;functionalgt;
usando el espacio de nombres std;int multiplicar(int x, int y){return x*y;}templatelt;class Tgt;
clase multiplicarClase
{
público:
operador T( )(T x, T y){return x*y;}
}; void main()
{
IntContainerlt; /p>
ic.add(1);
ic.add(2).IntContainerlt; intgt;: iterador primero = ic.begin(); i
ntgt;::iterator end = ic.end(); for( ; primero != final; primero )
coutlt;lt;*firstlt;lt;endl;
vectorlt; intgt; vec;
vec.push_back(1);
vec.push_back(2);
para (vectorlt; intgt; ::iterador tmp = vec.begin();
tmp ! = vec.end();
tmp )
{
coutlt;lt; *tmplt;lt;endl;
} coutlt;lt;"______________"lt;lt;endl;
coutlt;lt;acumular(vec.begin(), vec.end (), 1, multiplica lt; ()) lt; endl; double doubleArray[]={12, 13.4, 34, 5, 6.6}; ; doubleArray[0], & doubleArray[5], 1, multiplicaslt; doublet ())lt; ], amp; doubleArray[5], dArray.begin(), minuslt; doublet ());
for(vectorlt; doublet. :: iterador primero = dArray.begin();
p>
primero ! = dArray.end(); primero )
coutlt;lt;*firstlt;lt;endl;
}