(Quand je dis STL, je parle de la bibliothèque de modèles qui tourne autour de conteneurs, itérateurs, algorithmes et foncteurs.)
Cette question est venue à l'esprit après avoir pensé qu'une std::string
se comporte essentiellement comme un récipient normale, fonctions begin
et end
(y compris iterator), une fonction size
et la possibilité d'utiliser tous ceux pour les algorithmes de STL normaux qui travaillent sur des conteneurs/gammes par leurs itérateurs (par exemple transform
, sort
, find
, etc.).Est-ce que std :: string fait partie de la STL?
Dans le même temps, cependant, ce n'est pas un conteneur lui-même, car il ne rentre pas dans l'image des conteneurs qui stockent des données arbitraires. En outre, il fonctionne sur les données contenues principalement à travers les fonctions membres, comme substr
, find_first_of
, etc., alors que le vrai conteneur ne le fait pas et laisse les algorithmes gérer cela.
En outre, le cplusplus reference site et la norme C++ ne répertorient pas std::string
avec les conteneurs réels, mais dans une catégorie distincte.
Cependant, sur SGI's STL site, basic_string
(et par conséquent le string
typedef) sont mentionnés avec l'autre conteneur et le basic_string
reference site indique qu'il appartient à la catégorie "conteneurs". Maintenant, ma question est: est-ce que string
fait partie de la STL ou est-ce une bibliothèque distincte?
Et si elle appartient maintenant à la STL, est-ce qu'elle différait du STL original développé par Stepanov?
Qui se soucie de la STL à ce stade, autre que pour la curiosité historique? – ildjarn
@ildjarn: Eh bien, j'aime accumuler des connaissances. : P Aussi, voir ce petit tag 'history'? :) Je suis juste intéressé par des trucs comme ça, alors je le demande. – Xeo
Ah, juste, je n'ai pas vu la balise 'history': -] – ildjarn