(Quand je dis STL, je parle de la bibliothèque de modèles qui tourne autour des récipients, des itérateurs, les algorithmes et les foncteurs.)
Cette question est venue à l'esprit après avoir pensé qu'un std::string
surtout se comporte comme un conteneur normal, avec begin
et end
fonctions (y compris itérateur), un size
de la fonction et de la possibilité d'utiliser toutes ces normal STL algorithmes qui fonctionnent sur les conteneurs / plages à travers leurs itérateurs (par exemple, transform
, sort
, find
, etc.).
Dans le même temps, cependant, il n'est pas un conteneur lui-même, comme il ne rentre pas dans l'image de conteneurs magasin arbitraire de données. Aussi, elle opère sur les données contenues principalement par le biais des fonctions de membre, comme substr
, find_first_of
, etc., alors que true conteneur de ne pas le faire et de laisser les algorithmes de gérer cela.
En outre, la cplusplus site de référence et la norme C++ n'a pas de liste std::string
ensemble avec le réel des conteneurs, mais dans une catégorie distincte.
Cependant, sur SGI STL site, basic_string
(et, par conséquent, l' string
typedef) sont mentionnés avec l'autre récipient et l' basic_string
site de référence des états qu'il appartient à la catégorie "contenants".
Maintenant, ma question est, est - string
fait partie de la STL ou est-il distinct de la bibliothèque elle-même?
Et si elle appartient à la STL a-t-il différer de l'original STL développé par Stepanov?