std::forward_list et std::forward_list::push_back

Je voudrais utiliser std::forward_list

Parce que:

La liste de renvoi est un conteneur qui prend en charge rapide d'insertion et de retrait
des éléments de n'importe où à partir du conteneur

Mais il n'y a pas de *std::forward_list::push_back* la mise en œuvre.

Est il y a une haute performance de façon à ajouter le support de l'une ou aucune raison de le faire?

Pourquoi avez-vous besoin? Voulez-vous développer votre liste de deux façons? Ne pouvez-vous pas utiliser push_front() tout aussi facilement?
Notez que la bidirectionnel std::list prend également en charge "rapide d'insertion et de suppression d'éléments de n'importe où à partir du conteneur", et a push_back. Le coût est un pointeur par entrée. La mémoire est si serré que vous ne pouvez pas l'utiliser?
Je veux garder le tri de la liste
Si vous souhaitez qu'elles soient triées, peut-être set ou multiset pourrait être un meilleur choix? Qui maintient un ordre de tri, au prix d'un ralentissement de l'insertion et le retrait (bien que l'insertion d'un élément unique sera plus rapide que l'insertion dans une liste de recours).
La liste liée individuellement sera légèrement plus rapide pour les opérations de prise en charge (puisque chaque opération de mise à jour de la moitié du nombre des pointeurs), mais tous les deux ont la même complexité des commandes. Il sera probablement plus lent, si vous voulez soutenir un rapide push_back.

OriginalL'auteur Alexander Abashkin | 2012-01-05