std::basic_stringbuf<CharT,Traits,Allocator>:: str
| (1) | ||
|
std::
basic_string
<
CharT, Traits, Allocator
>
str
(
)
const
;
|
(jusqu'à C++20) | |
|
std::
basic_string
<
CharT, Traits, Allocator
>
str
(
)
const
&
;
|
(depuis C++20) | |
|
template
<
class
SAlloc
>
std:: basic_string < CharT, Traits, SAlloc > str ( const SAlloc & a ) const ; |
(2) | (depuis C++20) |
|
std::
basic_string
<
CharT, Traits, Allocator
>
str
(
)
&&
;
|
(3) | (depuis C++20) |
|
void
str
(
const
std::
basic_string
<
CharT, Traits, Allocator
>
&
s
)
;
|
(4) | |
|
template
<
class
SAlloc
>
void str ( const std:: basic_string < CharT, Traits, SAlloc > & s ) ; |
(5) | (depuis C++20) |
|
void
str
(
std::
basic_string
<
CharT, Traits, Allocator
>
&&
s
)
;
|
(6) | (depuis C++20) |
|
template
<
class
StringViewLike
>
void str ( const StringViewLike & t ) ; |
(7) | (depuis C++26) |
Obtient et définit la chaîne sous-jacente.
Dans les descriptions ci-dessous, buf et mode sont des membres de données exposition-only de * this .
std::basic_stringbuf
. Pour les flux en entrée uniquement, la chaîne retournée contient les caractères de la plage
[
eback()
,
egptr()
)
. Pour les flux en entrée/sortie ou en sortie uniquement, contient les caractères de
pbase()
jusqu'au dernier caractère de la séquence, indépendamment de
egptr()
et
epptr()
.
-
-
La séquence de caractères membres dans un tampon ouvert en écriture peut être sur-allouée à des fins d'efficacité. Dans ce cas, seuls les
caractères initialisés
sont retournés : ces caractères sont ceux qui ont été obtenus à partir de l'argument chaîne du constructeur, de l'argument chaîne de l'appel le plus récent à une surcharge de mutateur de
str(), ou d'une opération d'écriture. Une implémentation typique qui utilise la sur-allocation maintient un pointeur de niveau haut pour suivre la fin de la partie initialisée du tampon et cette surcharge retourne les caractères de pbase() jusqu'au pointeur de niveau haut.
-
La séquence de caractères membres dans un tampon ouvert en écriture peut être sur-allouée à des fins d'efficacité. Dans ce cas, seuls les
caractères initialisés
sont retournés : ces caractères sont ceux qui ont été obtenus à partir de l'argument chaîne du constructeur, de l'argument chaîne de l'appel le plus récent à une surcharge de mutateur de
|
(depuis C++20) |
SAlloc
satisfait aux exigences de
Allocator
.
init_buf_ptrs
()
, puis retourne l'objet
std::basic_string
.
init_buf_ptrs
()
.
Allocator
.
init_buf_ptrs
()
.
init_buf_ptrs
()
.
std:: basic_string_view < CharT, Traits >> est true .
Table des matières |
Paramètres
| s | - | un objet std::basic_string contenant la séquence de caractères de remplacement |
| t | - | un objet (convertible en std::basic_string_view ) contenant la séquence de caractères de remplacement |
| a | - | allocateur à utiliser pour toutes les allocations mémoire de la std::basic_string retournée |
Valeur de retour
Notes
Cette fonction est généralement accessible via std::basic_istringstream::str() , std::basic_ostringstream::str() , ou std::basic_stringstream::str() .
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_sstream_from_string_view
|
202306L
|
(C++26) | Interface des flux de chaînes avec std::string_view |
Exemple
#include <iostream> #include <sstream> int main() { int n; std::istringstream in; // pourrait aussi utiliser in("1 2") in.rdbuf()->str("1 2"); // définir la zone de lecture in >> n; std::cout << "après lecture du premier int depuis \"1 2\", l'int est " << n << ", str() = \"" << in.rdbuf()->str() << "\"\n"; // ou in.str() std::ostringstream out("1 2"); out << 3; std::cout << "après écriture de l'int '3' dans le flux de sortie \"1 2\"" << ", str() = \"" << out.str() << "\"\n"; std::ostringstream ate("1 2", std::ios_base::ate); // C++11 ate << 3; std::cout << "après écriture de l'int '3' dans le flux d'ajout \"1 2\"" << ", str() = \"" << ate.str() << "\"\n"; }
Sortie :
après lecture du premier int depuis "1 2", l'int est 1, str() = "1 2" après écriture de l'int '3' dans le flux de sortie "1 2", str() = "3 2" après écriture de l'int '3' dans le flux d'ajout "1 2", str() = "1 23"
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 432 | C++98 |
1. la surcharge
(1)
ne spécifiait pas le contenu
de la séquence de caractères sous-jacente 2. la surcharge (4) ne spécifiait pas comment les séquences d'entrée et de sortie sont initialisées |
les deux sont spécifiés |
| LWG 562 | C++98 |
la surcharge
(4)
positionnait
epptr()
sur le caractère suivant le dernier
caractère sous-jacent si bool ( mode & std:: ios_base :: out ) == true |
epptr()
peut être positionné
au-delà de cette position |
Voir aussi
|
obtient ou définit le contenu de l'objet de chaîne sous-jacent
(fonction membre publique de
std::basic_stringstream<CharT,Traits,Allocator>
)
|
|
|
(C++20)
|
obtient une vue sur la séquence de caractères sous-jacente
(fonction membre publique) |