std::basic_string<CharT,Traits,Allocator>::data
const CharT* data() const;
|
(1) | (noexcept desde C++11) (constexpr desde C++20) |
CharT* data() noexcept;
|
(2) | (desde C++17) (constexpr desde C++20) |
Devuelve un puntero al arreglo subyacente que sirve como almacenamiento de caracteres. El puntero es tal que el rango
|
|
(hasta C++11) |
|
|
(desde C++11) |
es válido y los valores en él corresponden a los valores almacenados en la cadena.
|
No se requiere que el arreglo devuelto termine en nulo. Si empty() devuelve |
(hasta C++11) |
|
El arreglo devuelto termina en nulo, es decir, Si empty() devuelve |
(desde C++11) |
El puntero obtenido de data() puede ser invalidado por:
- Pasar una referencia no constante a la cadena a cualquier función de la biblioteca estándar, o
- Llamar a funciones miembro no constantes en la cadena, excluyendo
operator[](), at(), front(), back(), begin(), end(), rbegin(), rend().
data tiene comportamiento indefinido.data() + size() a cualquier valor distinto de CharT() tiene comportamiento indefinido.Parámetros
(ninguno)
Valor de retorno
Un puntero al almacenamiento de caracteres subyacente.
|
data
(
)
[
i
]
==
operator
[
]
(
i
)
para todo
|
(hasta C++11) |
|
data
(
)
+
i
==
std::
addressof
(
operator
[
]
(
i
)
)
para todo
|
(desde C++11) |
Complejidad
Constante.
Ejemplo
#include <algorithm> #include <cassert> #include <cstring> #include <string> int main() { std::string const s("Emplary"); 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())); }
Véase también
|
(
DR*
)
|
accede al primer carácter
(función miembro pública) |
|
(
DR*
)
|
accede al último carácter
(función miembro pública) |
|
devuelve una versión no modificable en formato de arreglo de caracteres C estándar de la cadena
(función miembro pública) |
|
|
devuelve un puntero al primer carácter de una vista
(función miembro pública de
std::basic_string_view<CharT,Traits>
)
|