Untitled

                Never    
C/C++
       
#include <iostream>

template <typename T>
class Vetor{
    
    private:
       T* v;     // vetor de elementos do tipo T
       int tam;  // tamanho do vetor
       
    public:
       Vetor(int t);
       ~Vetor();
       int tamanho();
       bool vazio();
       T elemento (int i);
       bool procura(T elem);
       void insere (T d,int i);
       void remove (int i);
};

// ************************************************************* VETOR CPP *****************************************************************

template <typename T>
Vetor<T>::Vetor(int t)
{
   v=new T[t];
   if (v==NULL)
      throw new std::string("memoria insuficiente");
   tam=t;
}   
    
template <typename T>
Vetor<T>::~Vetor()
{
   delete v;        // Remove a alocação dinamica da memória
}     
   

template <typename T>
int Vetor<T>::tamanho()
{
   return tam;
}      
    
template <typename T>
bool Vetor<T>::vazio()
{
   return tam==0;
}

template <typename T>
T Vetor<T>::elemento(int i)
{
    if (i<0 || i>=tam)
        throw std::string("Indice Invalido");
    return v[i];
}

template <typename T>
void Vetor<T>::insere(T d,int i)
{
    if (i<0 || i>=tam)
        throw std::string("Indice Invalido");
    v[i]=d;
}

template <typename T>
bool Vetor<T>::procura(T elem)
{
    for (int i=0; i<tam; i++)
        if (v[i] == elem)
            return true;
        return false;
            
}

template <typename T>
void Vetor<T>::remove(int i)
{
    if (i<0 || i>=tam)
        throw std::string("Indice Invalido");
    v[i]=NULL;
}


// ************************************************************* MAIN CPP *****************************************************************

int main(int argc, const char * argv[]) {
    Vetor<int> w(10);
    //std::cout<<w.tamanho();
    w.insere(3,0);
    //std::cout<<w.elemento(0);
    //std::cout<<w.procura(3);
    w.remove(0);
    std::cout<<w.elemento(0);
    return 0;
}

/*

Na aula de amanhaã, criar um metodo chamado "agrupamento" -> vai receber outro vetor, vai ter que colocar totalmente no final.
Vai ter que realocar o vetor
Qualquer momento que precisar reacolar, dar um new.
Aquele que não estiver sendo usado, joga fora.

*/

Raw Text