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
| class Conteneur
{
/* pour la facilité */
std::vector<UU> vector;
public:
/* pour te permettre, en cas de besoin, de changer de type
* de conteneur, sans devoir modifier chaque endroit du code
* qui essaye d'accéder aux éléments (bien que la re compilation
* soit nécessaire :-P)
*/
typedef vector::const_iterator const_iterator;
/* éventuellement */
typedef vector::iterator iterator;
/* le constructeur qui permet d'avoir une collection vide */
Conteneur(){}
/* et celui qui permet d'avoir une collection "déjà remplie"
*/
template <typename iter>
Conteneur(iter b, iter e):items_(b,e){}
/* les fonctions qui permettent d'accéder au début de la collection
* et à sa fin
*
* En version constante
*/
const_iterator begin() const{return items_.begin();}
const_iterator end() const{return items_.end();}
/* Et éventuellement en version non constante
*/
iterator begin() {return items_.begin();}
iterator end() {return items_.end();}
/* la fonction qui permet, éventuellement, de rajouter un objet à
* la collection
*/
void add(std::string const & n)
{
/* selon le cas, il faudra veiller ou non à l'unicité ;) */
items_.push_back(UU(n));
}
/* la fonction qui permet, éventuellement, de retrouver l'objet
* identifié par une chaine de caractères
*/
/* sous sa forme constante */
const_iterator find(std::string const & n ) const
{
/* je ne vais pas tout faire pour toi ;)
*/
}
/* et, éventuellement sous sa forme non constante */
iterator find(std::string const & n )
{
/* je ne vais pas tout faire pour toi ;)
*/
}
/* la fonction permettant éventuellement de savoir si un objet
* existe
*/
bool exists(std::string const & n) const
{
return find(n)!=items_.end();
}
/* éventuellement, la fonction permettant de trier les objets */
void sort()
{
/* à toi de jouer */
}
/* et, éventuellement, la fonction permettant de savoir combien
* d'objets se trouvent dans la collection
*/
size_t size() const{return items_.size();}
private:
/* sans oublier... le membre "qui va bien" */
vector items_;
}; |
Partager