En ce qui concerne le pointeur inutile, je vois que mes conseils sont toujours aussi bien suivis...
Sinon, il n'y a qu'à voir la doc de QVector::append
void QVector::append(const T & value)
Le retour est de type void, soit pas de retour.
Il faut bien comprendre que append() va rajouter un élément à la fin de notre QVector. Et at() de façon totalement indépendante, et dans un appel séparé n'yant rien à voir, va juste retourner l'élément déjà existant du QVector à la position demandée.
Tu ne peux pas juste combiner les deux ainsi et espérer obtenir ce que tu souhaites.
Il faut réfléchir un peu à ce que tu fais :
- Qu'est-ce que tu as au départ de cette fonction ?
Un vecteur de doubles, d'une certaine taille (que tu peux obtenir avec la méthode size()). - Que veux-tu faire précisément ?
Positionner une valeur x à un certain endroit que tu détermines : t
De là on est en droit de se poser plusieurs questions :
- Cet endroit existe t-il déjà ? Autrement dit est-ce que t est inférieur strict à la taille de notre QVector ?
- Si oui on va remplacer la valeur présente à cet endroit par le paramètre x
- Si non, que fait-on ? Au moins deux choix peuvent être envisagés :
- On lance une exception, pour renseigner l'appelant que cette opération est impossible.
- On accepte l'opération, il faudra alors agrandir notre QVector avec le nombre d'éléments nécessaires, en initialisant les éléments "intermédiaires" à une certaine valeur.
C'est ton projet, à toi de voir la stratégie à adopter
Partager