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
A voir également:
- Vector d'objet
- Vente objet occasion entre particulier - Guide
- Objet interdit en cabine ryanair - Guide
- Trouver objet avec 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
416
Statut
Membre
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