Bonjour à tous,
Alors voilà, dans le cadre de mon projet perso, je dois insérer un vecteur particulier dans un vecteur de vecteur. Aussi, le nouveau vecteur doit être ajouté comme premier élément (un peu comme une pile LIFO en somme).
j'ai donc le vecteur m_status (qui est la destination) et status (qui est le vecteur à ajouter). Après la manip, on doit pouvoir récupérer le vecteur "status" ou du moins sa copie de telle sorte que :
J'ai donc un code du style suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part m_status[0] == status;
J'aurais donc aimé savoir si cette fonction était bonne ou pas. Car je viens d'ajouter la classe utilisant cette fonction dans mon programme, mais je me retrouve avec une belle erreur de segmentation et je soupçonne fortement cette dernière d'être, au moins en partie, à l'origine du mal (la compilation se déroule sans problème, avec g++ -W -Wall -Wextra -Werror; sortie vierge).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 std::vector<std::vector<float> > m_status; void my_class::addStatus(const std::vector<float> &status) { m_status.insert(m_status.begin(), status); }
j'ai bien imaginé de transformer mon code de la manière suivante :
mais tel que je me le représente, cela ne reviens pas du tout à ce que je souhaite faire. In fine, il faudrait que je puisse faire un "push_front(status);"
Code : Sélectionner tout - Visualiser dans une fenêtre à part m_status.insert(m_status.begin(), status.begin(), status.end());
A savoir, cette fonction vient en cascade d'une boucle venant d'une autre fonction, nécessaire pour le bon déroulement du programme au complet ; il est donc difficile pour moi de tester la viabilité de cette dernière en particulier, et je ne peux pas tester la suite du programme sans cette dernière. Bref, dans ce cas précis, le débug devient difficile compte tenu de mon niveau dans le domaine.
Merci d'avance pour votre aide.
Partager