Espacios de nombres
Variantes
Acciones

std::basic_string::data

De cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
 
(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, data() y c_str() realizan la misma función.

Si empty() devuelve true, el puntero apunta a un solo carácter nulo.

(desde C++11)

El puntero obtenido de data() puede invalidarse por:

1) Modificar el array de caracteres accedido mediante la sobrecarga const de data tiene un comportamiento indefinido.
2) Modificar el terminador nulo despues del final, almacenado en 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 i en [0, size()).

(hasta C++11)

data() + i == std::addressof(operator[](i)) para cada i en [0, size()].

(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) [editar]
(C++11)
Accede al último carácter
(función miembro pública) [editar]
Devuelve una versión de la cadena que es un array de caracteres no modificable de C estándar
(función miembro pública) [editar]