Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Vecteur.h"
- //constructeur
- template <class T>
- Vecteur<T>::Vecteur(){
- tab = NULL;
- occup = NULL;
- setNb(0);
- setSize(0);
- }
- template <class T>
- Vecteur<T>::Vecteur(const int size){
- if(size>0){
- tab = new T[size];
- occup = new char[size];
- memset(occup,0,sizeof(char)*size);
- setNb(0);
- setSize(size);
- }
- }
- //destructeur
- template <class T>
- Vecteur<T>::~Vecteur(){
- if(tab) delete [] tab;
- if(occup) delete occup;
- }
- //surcharge
- template <class T>
- void Vecteur<T>::operator+(const T newElem){
- if(full())
- throw VecteurFull("Plus de place dans le vecteur");
- int i;
- for(i=0; i<getSize() && estOccupe(i); i++);
- tab[i] = newElem;
- occup[i] = 1;
- setNb(getNb()+1);
- }
- //methode
- template <class T>
- const void Vecteur<T>::affiche()const{
- if(empty())
- return;
- for(int i=0;i<getSize();i++){
- if(estOccupe(i)){
- cout << "Elément "<< i << endl << tab[i];
- }else{
- cout << "Elément "<< i << " vide";
- }
- cout << endl;
- }
- }
- template <class T>
- const T Vecteur<T>::getElement(const int i) const{
- if(indiceValide(i) && estOccupe(i)){
- return tab[i];
- }
- throw InvalidIndiceExceptions("Indice invalide ou place non occupée");
- }
- template <class T>
- void Vecteur<T>::setElement(const int i,const T newElem){
- if(indiceValide(i) && !estOccupe(i)){
- tab[i] = newElem;
- occup[i] = 1;
- setNb(getNb()+1);
- }else
- throw InvalidIndiceExceptions("Indice invalide ou place non occupée");
- }
- template <class T>
- T Vecteur<T>::retireElement(const int i){
- if(indiceValide(i) && estOccupe(i)){
- occup[i] = 0;
- setNb(getNb()-1);
- return tab[i];
- }throw InvalidIndiceExceptions("Indice invalide ou place non occupée");
- }
Advertisement
Add Comment
Please, Sign In to add comment