std::basic_string::data
(1) | ||
const CharT* data() const; |
(hasta C++11) | |
const CharT* data() const noexcept; |
(desde C++11) (hasta C++20) |
|
constexpr const CharT* data() const noexcept; |
(desde C++20) | |
(2) | ||
CharT* data() noexcept; |
(desde C++17) (hasta C++20) |
|
constexpr CharT* data() noexcept; |
(desde C++20) | |
Devuelve un puntero al array subyacente que sirve como almacenamiento de caracteres. El puntero es tal que el rango [data(); data() + size())
es válido y los valores en él corresponden con los valores almacenados en la cadena.
El array devuelto no se requiere que esté terminado en nulo. Si empty() devuelve true, el puntero es un puntero no nulo que no deberá desreferenciarse. |
(hasta C++11) |
El array devuelto está terminado en nulo. Es decir, Si empty() devuelve true, el puntero apunta a un solo carácter nulo. |
(desde C++11) |
El puntero obtenido de data()
puede invalidarse por:
- Pasar una referencia no
const
a la cadena de cualquier función de la biblioteca estándar, o - Llamar a funciones miembro no
const
en la cadena, excluyendo aoperator[]()
, at(), front(), back(), begin(), end(), rbegin(), rend().
const
de data
tiene un comportamiento indefinido.data()+size()
con cualquier valor distinto de CharT()
tiene un comportamiento indefinido.Contenido |
[editar] Parámetros
(Ninguno)
[editar] Valor de retorno
Un puntero al almacenamiento de caracteres subyacente.
data()[i] == operator[](i) para cada |
(hasta C++11) |
data() + i == std::addressof(operator[](i)) para cada |
(desde C++11) |
[editar] Complejidad
Constante.
[editar] Ejemplo
#include <algorithm> #include <cassert> #include <cstring> #include <string> int main() { std::string const s("Emplar"); assert(s.size() == std::strlen(s.data())); assert(std::equal(s.begin(), s.end(), s.data())); assert(std::equal(s.data(), s.data() + s.size(), s.begin())); assert(0 == *(s.data() + s.size())); }
[editar] Véase también
(C++11) |
Accede al primer carácter (función miembro pública) |
(C++11) |
Accede al último carácter (función miembro pública) |
Devuelve una versión de la cadena que es un array de caracteres no modificable de C estándar (función miembro pública) |