Vector d'objet
Résolu
DrCrow
Messages postés
387
Date d'inscription
Statut
Membre
Dernière intervention
-
DrCrow Messages postés 387 Date d'inscription Statut Membre Dernière intervention -
DrCrow Messages postés 387 Date d'inscription Statut Membre Dernière intervention -
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
A voir également:
- Vector d'objet
- Vente objet occasion entre particulier - Guide
- Objet interdit en cabine ryanair - Guide
- Identifier un objet à partir d'une photo - Guide
- Mesurer un objet - Guide
- Vous devez disposer d'autorisations d'accès en lecture pour afficher les propriétés de cet objet - Guide
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/
c.f. http://www.cplusplus.com/reference/vector/vector/
DrCrow
Messages postés
387
Date d'inscription
Statut
Membre
Dernière intervention
19
désolé mais, lorsque j'essaye de mettre un objet comme paramètre dans le push_back(), le compilateur Hurle a MORT....
peut on faire ceci:
vector<MyClass> Objet(5);
Objet.push_back(MyClass);
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);
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 (&)())'|
no matching function for call to `std::vector<Employee, std::allocator<Employee> >::push_back(Employee (&)())'|
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
fichier MyClass.hpp
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