J'ai une classe où je veux utiliser une grande quantité de vecteurs.itérateurs de vecteurs incompatibles
class Bar {
Bar();
std::vector<Foo> * _grid;
void someFunction();
}
Bar::Bar() {
_grid = (std::vector<Foo> *)malloc(_gridSize * sizeof(std::vector<Foo>);
memset(_grid, 0, _gridSize * sizeof(std::vector<Foo>);
}
void Bar::someFunction() {
int index = 0;
std::vector<Foo> someVariable = _grid[index];
}
Cependant, dès que je l'appelle someFunction()
, je reçois un message d'erreur vector iterators incompatible
dès qu'il ya une teneur en _grid[index]
. Si le vecteur est vide, cela fonctionne.
J'ai lu sur le message d'erreur produit par les itérateurs invalidés, cependant, puisque je ne change rien sur les vecteurs à ce stade, je ne comprends pas ce qui ne va pas ici.
Pourquoi dans le monde utilisez-vous 'malloc'? Votre vecteur n'est pas en construction! –
La chose étrange à ce sujet était que push_back etc travaillé et studio visuel correctement l'a montré avec la capacité et la taille ^^. J'ai oublié le constructeur. – Etan
"J'ai une classe où je veux utiliser une grande quantité de vecteurs." Quel montant vous semblez déterminer à l'exécution. Euh ... pourquoi ne pas utiliser un vecteur de vecteurs? Avez-vous en quelque sorte oublié quels vecteurs sont ** pour ** au milieu de leur utilisation? :) –