#ifndef __IVECTOR_H # define __IVECTOR_H struct intvector; /** * Initialise le vecteur ``v'' */ struct intvector iv_new(); /** * Retourne le nombre d'element contenu dans ``v'' */ int iv_size(struct intvector *v); /** * Le vecteur ``v'' est-il vide ? */ int iv_empty(struct intvector *v); /** * Le vecteur ``v'' est-il plein ? */ int iv_full(struct intvector *v); /** * Retourne le ``idx''-eme element de ``v'' */ int iv_get(struct intvector *v, int idx); /** * Remplace le ``idx''-eme element de ``v'' */ void iv_set(struct intvector *v, int idx, int value); /** * Ajoute ``value'' a la fin du tableau */ void iv_add(struct intvector *v, int value); /** * Retourne l'index de la premiere occurence de ``value'', -1 si elle n'est pas trouvee */ int iv_indexof(struct intvector *v, int value); /** * Retire le ``idx''-eme element sans laisser de trou. */ void iv_removeat(struct intvector *v, int idx); /** * Copie ``length'' elements de ``src'' a partir de ``s_idx'' dans ``dst'' en debutant a ``d_idx''. * ``dst'' doit etre assez grand pour recevoir les elements, son contenu anterieur est ecrase. */ void iv_copy(struct intvector *src, struct intvector *dst, int *s_idx, int *d_idx, int length); #endif