Bonjour.
J'ai encore un peu de mal avec la gestion de la mémoire au sein du C++, et j'aurai une question spécifique.
Voilà un résumé du problème :
J'ai une structure listElement qui rassemble pas mal de données (dont des QPixmap (je bosse avec Qt)).
J'ai une classe ListClass qui contient un std::vector<listElement> _listvector qui rassemble plus de 300 éléments. Cette classe permet d'initialiser tous ces éléments mais également d'effectuer certaines opérations dessus.
Ce que j'aimerai dans la mesure du possible c'est initialiser une variable de type ListClass au lancement de mon programme et qu'ensuite toutes les autres classes lancées pendant l'exécution du programme aient directement accès aux éléments du std::vector<listElement> (en "lecture seule"). Le problème actuellement c'est que si je fais :
ça effectue une copie inutile, et ça prend vite de la place en mémoire (surtout avec les images).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 inline listElement ListClass::getElement(int i) const { return _listVector[i]; }
Quelle serait la meilleure solution pour parvenir à ce dont j'ai envie ?
Merci beaucoup.
Partager