C'est pas la STL qui a un problème c'est l'usage que t'en fait.
std::list est une liste chainée elle est très perfomante quand il s'agit d'ajouter ou de retirer des éléments à la liste.
Dans le cas que tu as écrit le plus rapide est d'utiliser :
static const int TAILLE = 10000000;
std::vector lst = std::vector(TAILLE);
qui te crée un tableau de taille 10000000 donc y a plus d'allocation, et les itérateurs sont très rapides puis que ceux sont alors des entiers.
Pour conclure :
Le C++ est plus rapide que c# ou java mais beaucoup plus difficil ;-)
Sa force est dans la métaprogrammation (c.f. la bibliothèque boost) et les STL (en créant ses propres straits on fait du placement d'objet ce qui n'est pas possible en java).
[^] # Re: Nécessité de Java?
Posté par michael_acreall . En réponse à la dépêche Accord entre la FSF et les développeurs OpenOffice au sujet de l'utilisation de Java. Évalué à 2.
std::list est une liste chainée elle est très perfomante quand il s'agit d'ajouter ou de retirer des éléments à la liste.
Dans le cas que tu as écrit le plus rapide est d'utiliser :
static const int TAILLE = 10000000;
std::vector lst = std::vector(TAILLE);
qui te crée un tableau de taille 10000000 donc y a plus d'allocation, et les itérateurs sont très rapides puis que ceux sont alors des entiers.
Pour conclure :
Le C++ est plus rapide que c# ou java mais beaucoup plus difficil ;-)
Sa force est dans la métaprogrammation (c.f. la bibliothèque boost) et les STL (en créant ses propres straits on fait du placement d'objet ce qui n'est pas possible en java).