Bonjour,
Je poste ce topic, car j'ai un soucis avec une fonction récursive.
La fonction permet en fait d'ajouter un élément dans un vector à une position données. Cependant, si la position est occupé, il faut décaler la/les valeur(s) pour insérer la nouvelle.
Voici mon code:
S'il n'y a aucun objet, l'insertion est bonne, sinon je tombe sur une boucle infinis...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 /** Fonction d'insertion d'un triable à une position choisie **/ void Tiroir::insert(int pos, Objet elem) { if(pos >= 0) { // On augmente la taille si besoin est: if(pos >= this->tab.size()) { this->tab.resize(this->tab.size() + 5); } // S'il ya déja un objet, on décalle les objets. if(this->tab[pos].getNom() == "") { // On insert l'objet à la bonne position. this->tab[pos] = elem; } else { this->insert((pos + 1), this->tab[pos]); } this->nbElem++; } else { cout << "Vous ne pouvez inserez de triable a cette position: (" << pos << ")" << endl; // todo exception à faire } }
Faut il obligatoirement une valeur de retour pour une fonction récursive?
Merci d'avance pour votre aide
Partager