¿Por qué no encadena :: data () Proporciona un carácter mutable *?
In c ++ 11 array
, string
yvector
todos obtuvieron eldata
método que:
Devuelve el puntero a la matriz subyacente que sirve como elemento de almacenamiento. El puntero es tal que el rango data()
; data() + size()
) siempre es un rango válido, incluso si el contenedor está vacío. Fuent]
Este método se proporciona en un mutable yconst
versión para todos los contenedores aplicables, por ejemplo:
T* vector<T>::data();
const T* vector<T>::data() const;
Todos los contenedores aplicables, es decir, exceptostring
cualonly proporciona laconst
versió:
const char* string::data() const;
¿Lo que pasó aquí? Por quéstring
se cambia, cuandochar* string::data()
sería tan útil?