Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>:: data

From cppreference.net
std::basic_string
const CharT * data ( ) const ;
(1) (noexcept depuis C++11)
(constexpr depuis C++20)
CharT * data ( ) noexcept ;
(2) (depuis C++17)
(constexpr depuis C++20)

Retourne un pointeur vers le tableau sous-jacent servant de stockage de caractères. Le pointeur est tel que la plage

[ data ( ) , data ( ) + size ( ) )

(jusqu'à C++11)

[ data ( ) , data ( ) + size ( ) ]

(depuis C++11)

est valide et les valeurs qu'il contient correspondent aux valeurs stockées dans la chaîne.

Le tableau retourné n'est pas requis d'être terminé par un caractère nul.

Si empty() retourne true , le pointeur est un pointeur non nul qui ne devrait pas être déréférencé.

(jusqu'à C++11)

Le tableau retourné est terminé par un caractère nul, c'est-à-dire que data() et c_str() accomplissent la même fonction.

Si empty() retourne true , le pointeur pointe vers un unique caractère nul.

(depuis C++11)

Le pointeur obtenu à partir de data() peut être invalidé par :

1) Modifier le tableau de caractères accessible via la surcharge const de data a un comportement indéfini.
2) Modifier le terminateur nul de fin stocké à data() + size() à une valeur autre que CharT() a un comportement indéfini.

Table des matières

Paramètres

(aucun)

Valeur de retour

Un pointeur vers le stockage de caractères sous-jacent.

data ( ) [ i ] == operator [ ] ( i ) pour chaque i dans [ 0 , size ( ) ) .

(jusqu'à C++11)

data ( ) + i == std:: addressof ( operator [ ] ( i ) ) pour chaque i dans [ 0 , size ( ) ] .

(depuis C++11)

Complexité

Constante.

Exemple

#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()));
}

Voir aussi

( DR* )
accède au premier caractère
(fonction membre publique)
( DR* )
accède au dernier caractère
(fonction membre publique)
retourne une version non modifiable du tableau de caractères C standard de la chaîne
(fonction membre publique)
retourne un pointeur vers le premier caractère d'une vue
(fonction membre publique de std::basic_string_view<CharT,Traits> )