Accueil > Forum > > > > Vector : problème
Vector : problème
dimanche 14 novembre 2004 à 16:33:48 |
Vector : problème

Clonk
|
Bonjour, voilà, j'ai un problème avec de vector, voilà en gros comment je marche: J'ai 2 vectors : un de sommets, un autre d'arrete (de segment) je parcours le vecteur d'arrete, si j'ai 2 segments qui se coupent, je supprime ces 2 Arretes et j'en crée 4 grâce au point d'intersection des 2 précédents. Pour les rajouter, je fais comme ça: ARRETE * N_A1 = new ARRETE(S, _A1->getP1()); ARRETE * N_A2 = new ARRETE(S, _A1->getP2()); ARRETE * N_A3 = new ARRETE(S, _A2->getP1()); ARRETE * N_A4 = new ARRETE(S, _A2->getP2()); L_A.erase(L_A.end() - (size + (i - 1))); L_A.erase(L_A.end() - (size + (i - 1))); L_S.resize(L_S.capacity() + 1); L_A.resize(L_A.capacity() + 2); L_A.push_back(N_A1); L_A.push_back(N_A2); L_A.push_back(N_A3); L_A.push_back(N_A4); L_S.push_back(S);
|
apparemment, ça marche bien, les resize() se font nikel. Mais quand j'arrive sur le L_A.push_back(N_A1); ça plante, erreur mémoire. Quelqu'un aurait-il une explication? Merci!
|
|
dimanche 14 novembre 2004 à 16:47:08 |
Re : Vector : problème

djl
|
t'es sur de ce que tu fais en faisant
L_A.resize(L_A.capacity() + 2); ?
tu multiplie par 2 la taille du buffer, si tu fais ca dans un boucle tu fera craquer ta memoire en quelques itérations
a mon avis tu veux plutot faire
L_S.resize(L_S.size() + 1); L_A.resize(L_A.size() + 2);
|
|
dimanche 14 novembre 2004 à 17:12:07 |
Re : Vector : problème

Clonk
|
bah G essayé avec size(), ça me donne la meme erreur. Et je vois pas pkoi je ferais péter ma mémoire avec capacity(), au lieu de retourner le nombre d'éléments avec size(), il me retourne le nombre total d'éléments que je peux mettre.
Et ça la fait pas exploser puisque C au premier passage dans ce code que ça plante.
|
|
dimanche 14 novembre 2004 à 17:36:36 |
Re : Vector : problème

djl
|
si c'est dans une boucle qui fais plus de 20 itérations t'auras deja un buffer 1M de fois plus gros (et 1Mrd avec 30)
ca te sers a quoi de redimensionner sur la capacité? apres quand tu fais un push_back tes données seront plus contigues
|
|
dimanche 14 novembre 2004 à 20:40:51 |
Re : Vector : problème

Clonk
|
bah ça me sert que quand je fais mon erase(), ça me libère 2 éléments dans mon vector, don j'ai pas de problème pour rajouter 2 nouveaux élémentns, mais dèe que je dois en rajouter 1 un nouveau (donc à partir du 3ème G un debug assertion failed (précédé par un "user breakpoint called") sous Visual. Donc je pensais que j'avais un problème avec mon vector qui voulait plus me gérer de dépassement sur mon vector. Mais apparemment C pas ça.
|
|
dimanche 14 novembre 2004 à 21:05:00 |
Re : Vector : problème

djl
|
c'est le 3e ou le 1er qui plante ?
et pour les histoires de taille et capacité pour vector, essay de voir (dans ta tete) ce que ca fais quand tu fais un resize() en te servant de la capacité
ca fais un vecteur troué, et tu sais meme pas ou se trouve tes données
donc je te conseille (mais si c'est pas la ton probleme) de rester avec
// redimensionne L_S.resize(L_S.size() + 1); L_A.resize(L_A.size() + 2);
tu sais ce que tu fais ? tu veux faire quoi précisement ? (algo qui concerne le vector)
|
|
lundi 15 novembre 2004 à 01:20:17 |
Re : Vector : problème

Clonk
|
si je fais le resize(), C le premier, si je le fais pas, C le 3eme en gros, l'algo de gestion de mes vectors C ça:
Si Se_coupent(v_segment[i], v_segment[j]) nouveau segment 1; nouveau segment 2; nouveau segment 3; nouveau segemnt 4; //On considère que les 4 sont issus de la section du point d'intersection des 2 qu'on vérifie v_segment.effacer(v_segment[i]); v_segment.effacer(v_segment[j]); v_segment.ajouter(1); v_segment.ajouter(2); v_segment.ajouter(3); v_segment.ajouter(4); FinSi
Voilà
|
|
lundi 15 novembre 2004 à 14:58:38 |
Re : Vector : problème

djl
|
ok tu en crée 4
pour effacer quelque soit les indices i et j, fais plutot (si i<j)
v_segment.erase( v_segment.begin() + j ); v_segment.erase( v_segment.begin() + i );
et apres tu push_back, pourquoi tu voudrais faire un resize() ?
la seule chose à voir c'est le choix du conteneur, vector c'est pas ce qu'il y a de mieux pour faire des erase (dans ton cas tu pourrais faire une copie à la place des erase)
|
|
Cette discussion est classée dans : a1, a2, push, arrete, back
Répondre à ce message
Sujets en rapport avec ce message
explode [ par thebigbang ]
bonjour à tous,Je cherche une fonction C++ qui permettrait de créer des tableaux de chaine à partir d'une autre chaine que l'on aurait découpée en fon
explode [ par thebigbang ]
bonjour à tous,Je cherche une fonction C++ qui permettrait de créer des tableaux de chaine à partir d'une autre chaine que l'on aurait découpée en fon
Idiomatique [ par ifren ]
I NEED helpquels sont la ou les methodes , pour faire de l'heritage avec une methode abstraite, exempleA1 et A2 deux classes qui hertitent de la class
Problème avec une Arboresence CTreeCtrl [ par sbleuze ]
Je gère une arboresence à l'aide d'un CTreeCtrl.Ce que je n'arrive pas à faire, c'est que lorsque je suis sur un point de mon arborescence, et que je
OpenGl en 3D [ par Jarod1980 ]
Salut,C'est juste pour une petite information. En fait, je voudrais tracé avec Glut une courbe en 3D. Mon programme intègre un système de 3 équations
Problème de manipulation des Iterator de la STL [ par keiko11245 ]
Voilà mon problème j'ai fait le programme suivant : #include #include using namespace std; void getItem(list L, list<i
Problème de fuite mémoire [ par franchouze ]
Bonjour, Pour vérifier les fuites mémoires de mon programme j'utilise valgrind. Voici "l'oubli" de libération détecté par valgrind (ligne avant la
Erreur calculatrice à base de switch [ par leguerinos ]
Bonjour,La compilation de mon code me renvoie deux erreurs dont je n'arrive pas a determiner la cause. Pourriez-vous m'aider?Merci d'avance. //////
Quel est l'équivalent de vector<int> (c++) en C ? Et quel est celui de ....push_back(...); en C ? [ par ndubien ]
Salut, Quel est l'équivalent de vector (c++) en C ?Et quel est celui de ....push_back(...); ?<font size
Deux meme string dans un vecteur. [ par frayst ]
Voila je vous explique ma situation : J'ai un vecteur string dans lequel jattribue des mots (dont certains sont les memes = Bonjour et Salut) : vector
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|