(Cuando digo STL, estoy hablando de la biblioteca de plantillas que gira en torno a los contenedores, iteradores, algoritmos y funtores.)
Esta pregunta vino a la mente después de pensar que un std::string
comporta sobre todo como un contenedor normal, con begin
y end
funciones (incluyendo iterador), una función size
y la posibilidad de utilizar todas aquellas para algoritmos STL normales que funcionan en contenedores/rangos a través de sus iteradores (por ejemplo, transform
, sort
, find
, etc.).¿std :: string es parte del STL?
Al mismo tiempo, sin embargo, no es un contenedor en sí, ya que no cabe en la imagen de los contenedores que almacenan datos arbitrarios. Además, opera en los datos contenidos principalmente a través de funciones miembro, como substr
, find_first_of
, etc., mientras que el contenedor verdadero no hace eso y deja que los algoritmos manejen eso.
Además, el cplusplus reference site y el estándar C++ no enumeran std::string
junto con los contenedores reales, sino en una categoría distinta.
Sin embargo, en SGI's STL site, basic_string
(y en consecuencia string
typedef) se mencionan con el otro contenedor y basic_string
reference site indica que pertenece a la categoría "contenedores".
Ahora mi pregunta es, ¿es realmente string
parte de la STL o es una biblioteca distinta en sí misma?
Y si ahora pertenece al STL, ¿difería en el STL original desarrollado por Stepanov?
¿A quién le importa el STL en este momento, que no sea por curiosidad histórica? – ildjarn
@ildjarn: Bueno, me gusta acumular conocimiento. : P Además, ¿ves esa pequeña etiqueta 'history'? :) Solo estoy interesado en cosas como esta, así que lo pido. – Xeo
Ah, claro, en realidad no vi la etiqueta 'history': -] – ildjarn