Inserer un objet dans un vecteur d`objet
Résolu
narymene
-
narymene Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
narymene Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Inserer un objet dans un vecteur d`objet
- Insérer une vidéo dans powerpoint - Guide
- Vente objet occasion entre particulier - Guide
- Identifier un objet à partir d'une photo - Guide
- Insérer un espace insécable dans word - Guide
- Mesurer un objet - Guide
2 réponses
Bonjour,
Il faudrait nous en dire un peu plus sur le type utilisé pour
Si c'est un "tableau" standard (comme en C), cela dépend de la taille que tu as allouée (e.g. avec
S'il s'agit d'un
Exemple :
Résultat :
Ensuite, il faudrait voir ce que fait ton programme, car ça n'est pas clair si
Il faudrait nous en dire un peu plus sur le type utilisé pour
population.
Si c'est un "tableau" standard (comme en C), cela dépend de la taille que tu as allouée (e.g. avec
newou
malloc). S'il y a suffisamment de place allouée, tu peux décaler les éléments "d'une case" après l'index d'insertion avec
memcpy, puis insérer ton élément à l'index choisi. Sinon il faudra faire une ré-allocation mémoire. Bref, c'est plus compliqué.
S'il s'agit d'un
std::vector(voir la STL), tu peux utiliser la méthode
insert.
Exemple :
#include <iostream> #include <ostream> #include <vector> // Écrit le contenu d'un vecteur template <typename T> std::ostream & operator << (std::ostream & out, const std::vector<T> & v) { out << '['; // C++ moderne for (const T & x : v) { out << ' ' << x; } /* // Anciennes versions de C++ for (typename std::vector<T>::const_iterator it = v.begin(); it != v.end(); it++) { out << ' ' << *it: } */ out << ']'; return out; } int main(){ using namespace std; // C++ moderne vector<int> v = {10, 20, 30, 40}; /* // Anciennes versions de C++ vector<int> v(4); v[0] = 10; v[1] = 20; v[2] = 30; v[3] = 40; */ vector<int>::iterator it = v.begin() + 3; v.insert(it, 35); cout << v << endl; return 0; }
Résultat :
(mando@silk) (~) $ g++ toto.cpp
(mando@silk) (~) $ ./a.out
[ 10 20 30 40]
[ 10 20 30 35 40]
Ensuite, il faudrait voir ce que fait ton programme, car ça n'est pas clair si
std::vectorest le container le plus adéquat. Selon ce que fait ton programme, utiliser
std::setou
std::listpeut-être plus approprié.
narymene
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
merci pour votre reponse, j'ai regle le probleme