Warum wird :: data () nicht als veränderbares Zeichen * angegeben?
Im c ++ 11 array
, string
, undvector
Alle haben dasdata
Methode welche:
Gibt den Zeiger auf das zugrunde liegende Array zurück, das als Elementspeicher dient. Der Zeiger ist so, dass der Bereich data()
; data() + size()
) ist immer ein gültiger Bereich, auch wenn der Container leer ist. Quell]
Diese Methode wird in einer veränderlichen undconst
-Version für alle zutreffenden Container, zum Beispiel:
T* vector<T>::data();
const T* vector<T>::data() const;
Alle zutreffenden Container, außerstring
welcheonly liefert dasconst
Ausführun:
const char* string::data() const;
Was ist hier passiert? Warum hatstring
Shortchanged bekommen, wennchar* string::data()
wäre so hilfreich?