summaryrefslogtreecommitdiff
path: root/vecteur.h
blob: 58843f7e59f7743c7317b39e07ee76e3639dc6d5 (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
#include <iostream>
#include "forme.h"

using namespace std;

// - [x] Items stockés sont des pointeurs de Forme
// - [ ] Items toujours contigus en mémoire
// - [ ] connaître la capacité maximale du vecteur
// - [ ] connaître la taille courante du vecteur
// - [ ] Lorsqu'il manque d'espace pour ajouter une forme,
//       le vecteur double sa capacité
// - [ ] vider le vecteur en un seul appel
// - [ ] lorsque le vecteur est vidé, détruire ses formes
// - [ ] savoir si le vecteur est vide (bool)
// - [ ] ajouter une forme à la fin du vecteur (true si ok)
// - [ ] supprimer une forme à un index (retourne la forme) NULL on error
// - [ ] récupérer une forme à un index (retourne la forme) NULL on error
// - [ ] afficher le vecteur en utilisant Forme::afficher()

class Vecteur {
  private:
    int capacite; // capacité maximale actuelle du vecteur
    int taille;
    // dynamic array of pointers to Forme
    Forme **formes;
  public:
    Vecteur();
    ~Vecteur();
    // Informations
    bool estVide();
    Forme *getForme(int index);
    int getTaille();
    void afficher(ostream &s);
    // Manipulations
    bool ajouterForme(Forme *f);
    Forme *supprimerForme(int index);
    void vider();
};