Vector d'objet
Résolu
DrCrow
Messages postés
416
Statut
Membre
-
DrCrow Messages postés 416 Statut Membre -
DrCrow Messages postés 416 Statut Membre -
salut,
donc voila.
Langage [C++]
j'ai creer un vecteur d'objet de la(Class one). ainsi...
et qui contient 5 cases.
vector<one> Obj(5);
si je veux le redimensionner, je procède comment? o_O
avec des push_back(), assign()... sa marche pas.
Merci...;D
donc voila.
Langage [C++]
j'ai creer un vecteur d'objet de la(Class one). ainsi...
et qui contient 5 cases.
vector<one> Obj(5);
si je veux le redimensionner, je procède comment? o_O
avec des push_back(), assign()... sa marche pas.
Merci...;D
5 réponses
-
un vector se redimensionne tout seul au besoin. un pushback(nouvel objet) devrait augmenter la taille de 1 (puisque nouvel objet est ajouté à la fin).
c.f. http://www.cplusplus.com/reference/vector/vector/ -
peut on faire ceci:
vector<MyClass> Objet(5);
Objet.push_back(MyClass);-
MyClass est une classe, pas un objet. La classe, c'est une sorte de type de variable.
C'est comme si tu fais un tableau :
int tab[10];
et ensuite que tu remplis la première case comme ceci :
tab[0] = int ;
aucune chance que ça marche.
par contre tu peux faire :
MyClass objetA, objetB;
vector<MyClass> v;
v.pushback(objetA);
v.pushback(objetB);
-
-
:(, sa hurle encore,
no matching function for call to `std::vector<Employee, std::allocator<Employee> >::push_back(Employee (&)())'| -
ça fait un bail que j'ai plus touché à tout ça...
désolé, je vais voir. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bon alors je ne sais pas trop comment tu déclares le tout et comment tu l'utilises.
Ceci étant, ce code compile et fonctionne chez moi :
fichier main.cpp//------------------------------------------------ #include <iostream> #include <vector> #include "MyClass.HPP" using namespace std; int main(int argc, char *argv[]) { vector<MyClass> vClass; vector<int> vInt; MyClass objetA, objetB; objetA.setA(18); objetB.setA(22); vInt.push_back(10); vClass.push_back(objetA); vClass.push_back(objetB); cout << "vInt : "<< endl; for(vector<int>::const_iterator i = vInt.begin(); i!=vInt.end() ; i++) { cout << *i << " "; } cout << " fin " << endl; cout << "vClass : "<< endl; for(vector<MyClass>::const_iterator i= vClass.begin();i!=vClass.end(); i++) { cout << (*i).getA() << " "; } cout << " fin " << endl; system("Pause"); }
fichier MyClass.hpp#ifndef MYCLASS_HPP #define MYCLASS_HPP class MyClass { public: int getA(void) const { return a; } void setA(int b) { a = b; } private: int a; }; #endif