blob: fdb153f1e695d6b4152b19c8931f4aba08710df5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
#include "vecteur.h"
Vecteur::Vecteur(){
capacite = 1;
taille = 0;
formes = new Forme*[capacite];
}
Vecteur::~Vecteur(){
vider();
delete[] formes;
}
bool Vecteur::estVide(){
return (taille == 0);
};
Forme *Vecteur::getForme(int index){
return (index < 0 || index >= taille) ? NULL : formes[index];
};
int Vecteur::getTaille(){
return taille;
};
int Vecteur::getCapacite(){
return capacite;
};
void Vecteur::afficher(ostream &s){
for (int i = 0; i < taille; i++) {
formes[i]->afficher(s);
}
};
bool Vecteur::ajouterForme(Forme *f) {
if (f == NULL) return false;
if (taille == capacite) {
// Double the size of the array
int newCapacite = capacite * 2;
Forme **newFormes = new (nothrow) Forme*[newCapacite];
if(newFormes==nullptr) return false;
for (int i = 0; i < taille; i++) {
newFormes[i] = formes[i];
}
capacite = newCapacite;
delete[] formes;
formes = newFormes;
}
formes[taille] = f;
taille++;
return true;
};
Forme *Vecteur::supprimerForme(int index) {
Forme *f = formes[index];
while (index < taille) {
formes[index] = formes[index + 1];
index++;
}
formes[taille] = NULL;
taille--;
return f;
};
void Vecteur::vider() {
for (int i = 0; i < taille; i++) {
delete formes[i];
}
capacite = 1;
taille = 0;
Forme **newFormes = new Forme*[capacite];
delete[] formes;
formes = newFormes;
}
|