Por que o string :: data () não fornece um caractere mutável *?
Em c ++ 11 array
, string
evector
todos têm odata
método que:
Retorna o ponteiro para a matriz subjacente que serve como armazenamento de elemento. O ponteiro é tal que alcance data()
; data() + size()
) é sempre um intervalo válido, mesmo que o contêiner esteja vazio. Font]
Este método é fornecido de forma mutável econst
versão para todos os contêineres aplicáveis, por exemplo:
T* vector<T>::data();
const T* vector<T>::data() const;
Todos os contêineres aplicáveis, ou seja, excetostring
qualonly fornece oconst
version:
const char* string::data() const;
O que aconteceu aqui? Porquestring
seja enganado quandochar* string::data()
seria tão útil?