Weedygamer
Messages postés10Date d'inscriptiondimanche 8 mai 2005StatutMembreDernière intervention 8 novembre 2011
-
5 déc. 2006 à 21:36
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 2012
-
7 déc. 2006 à 17:06
Bonjour à tous
J'ai un petit problème à propos de la classe Vector fournit par STL. En fait j'aimerai insérer un élément n'importe où dans le vector, j'ai essayé mais les résultats ne sont pas très concluant
Je m'y suis pris comme ceci, je ne trouve pas ça très propre, je présume qu'il y a une autre manière:
/*
nom du vecteur : _vect
taille du vecteur > 10
*/
{
int elt = 10;
std::vector::iterator it = _vect.begin();
it+=10;
_dic.insert(it,elt);
}
En gros voilà, j'arrive à insérer en début et en fin mais pas n'importe où
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 5 déc. 2006 à 21:49
C'est fait exprès. Si tu veux insérer un élément au milieu, c'est très inefficace avec un vector (il faut décaler tous les éléments suivants). Tu peux faire ta propre méthode à la main si tu veux quand même utiliser un vector, mais c'est peut être plus judicieux d'utiliser une liste chainée (std::list)
Weedygamer
Messages postés10Date d'inscriptiondimanche 8 mai 2005StatutMembreDernière intervention 8 novembre 2011 7 déc. 2006 à 16:42
merci pour les réponses, en fait le côté bénéfique du vecteur pour l'utilisation que j'en ait c'est que je peux acquérir un élément à n'importe quelle position avec vect.at(int position), je voulais également pouvoir insérer un élément n'importe où. Apparament ceci ne fonctionne pas. Si avec une liste je peux insérer n'importe où, je ne peux pas acquérir un élément à une position donnée. Je pense donc que je suis piégé, je voulais bien utiliser map mais bon au niveau des performance c'était pas top.
Auriez-vous une autre solution ? Sinon et bien tant pis ce n'est pas grave, je trouverais bien autre chose