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 |
(hasta C++11) |
|
El array devuelto está terminado en nulo. Es decir, Si empty() devuelve |
(desde C++11) |
El puntero obtenido de data() puede invalidarse por:
- Pasar una referencia no
consta la cadena de cualquier función de la biblioteca estándar, o - Llamar a funciones miembro no
consten 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.Parámetros
(Ninguno)
Valor de retorno
Un puntero al almacenamiento de caracteres subyacente.
|
|
(hasta C++11) |
|
|
(desde C++11) |
Complejidad
Constante.
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()));
}
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) |