Les std::vector sont aussi performants que les tableaux dynamiques. Pour des tableaux 2D, il faut en effet éviter des std::vector<std::vector<T>> et préférer un std::vector linéarisé (encapsulé dans une classe). Il serait intéressant que tu puisses nous donner un exemple qui reproduit ceci
Autre petite différence, de base std::vector initialise tous ces éléments contrairement à new.
Une fois ces éléments connus, il suffit de faire attention à bien réserver la place (ne pas faire des push_back dans tous les sens) et aux copies pour avoir les mêmes performances.
@kochfet> Questions performances, il faut mieux supprimer l'héritage (polymorphisme d'inclusion) au profit des templates (polymorphisme paramétrique).
Ça dépend ce que tu fais avec ton objet une fois que tu l'as recupèré de ta matrice mais si peu d'opérations sont faites le coût d'accès au bon type sera élévé (en pourcentage).
http://cpp.developpez.com/faq/cpp/?p...e_parametrique
Partager