std::basic_stringbuf<CharT,Traits,Allocator>:: str
| (1) | ||
|
std::
basic_string
<
CharT, Traits, Allocator
>
str
(
)
const
;
|
(hasta C++20) | |
|
std::
basic_string
<
CharT, Traits, Allocator
>
str
(
)
const
&
;
|
(desde C++20) | |
|
template
<
class
SAlloc
>
std:: basic_string < CharT, Traits, SAlloc > str ( const SAlloc & a ) const ; |
(2) | (desde C++20) |
|
std::
basic_string
<
CharT, Traits, Allocator
>
str
(
)
&&
;
|
(3) | (desde 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) | (desde C++20) |
|
void
str
(
std::
basic_string
<
CharT, Traits, Allocator
>
&&
s
)
;
|
(6) | (desde C++20) |
|
template
<
class
StringViewLike
>
void str ( const StringViewLike & t ) ; |
(7) | (desde C++26) |
Obtiene y establece la cadena subyacente.
En las descripciones siguientes, buf y mode son miembros de datos solo para exposición de * this .
std::basic_stringbuf
. Para flujos de solo entrada, la cadena devuelta contiene los caracteres del rango
[
eback()
,
egptr()
)
. Para flujos de entrada/salida o solo salida, contiene los caracteres desde
pbase()
hasta el último carácter de la secuencia, independientemente de
egptr()
y
epptr()
.
-
-
La secuencia de caracteres miembro en un búfer abierto para escritura puede estar sobreasignada con fines de eficiencia. En ese caso, solo se devuelven los
caracteres inicializados
: estos caracteres son los que se obtuvieron del argumento de cadena del constructor, del argumento de cadena de la llamada más reciente a una sobrecarga de establecimiento de
str(), o de una operación de escritura. Una implementación típica que utiliza sobreasignación mantiene un puntero de marca de agua alta para rastrear el final de la parte inicializada del búfer y esta sobrecarga devuelve los caracteres desde pbase() hasta el puntero de marca de agua alta.
-
La secuencia de caracteres miembro en un búfer abierto para escritura puede estar sobreasignada con fines de eficiencia. En ese caso, solo se devuelven los
caracteres inicializados
: estos caracteres son los que se obtuvieron del argumento de cadena del constructor, del argumento de cadena de la llamada más reciente a una sobrecarga de establecimiento de
|
(desde C++20) |
SAlloc
cumple con los requisitos de
Allocator
.
init_buf_ptrs
()
, luego retorna el objeto
std::basic_string
.
init_buf_ptrs
()
.
Allocator
.
init_buf_ptrs
()
.
init_buf_ptrs
()
.
std:: basic_string_view < CharT, Traits >> es true .
Contenidos |
Parámetros
| s | - | un objeto std::basic_string que contiene la secuencia de caracteres de reemplazo |
| t | - | un objeto (convertible a std::basic_string_view ) que contiene la secuencia de caracteres de reemplazo |
| a | - | asignador a utilizar para todas las asignaciones de memoria del std::basic_string devuelto |
Valor de retorno
Notas
Esta función se accede típicamente a través de std::basic_istringstream::str() , std::basic_ostringstream::str() , o std::basic_stringstream::str() .
| Macro de prueba de características | Valor | Estándar | Característica |
|---|---|---|---|
__cpp_lib_sstream_from_string_view
|
202306L
|
(C++26) | Interconexión de flujos de cadena con std::string_view |
Ejemplo
#include <iostream> #include <sstream> int main() { int n; std::istringstream in; // could also use in("1 2") in.rdbuf()->str("1 2"); // set the get area in >> n; std::cout << "after reading the first int from \"1 2\", the int is " << n << ", str() = \"" << in.rdbuf()->str() << "\"\n"; // or in.str() std::ostringstream out("1 2"); out << 3; std::cout << "after writing the int '3' to output stream \"1 2\"" << ", str() = \"" << out.str() << "\"\n"; std::ostringstream ate("1 2", std::ios_base::ate); // C++11 ate << 3; std::cout << "after writing the int '3' to append stream \"1 2\"" << ", str() = \"" << ate.str() << "\"\n"; }
Salida:
after reading the first int from "1 2", the int is 1, str() = "1 2" after writing the int '3' to output stream "1 2", str() = "3 2" after writing the int '3' to append stream "1 2", str() = "1 23"
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 432 | C++98 |
1. la sobrecarga
(1)
no especificaba el contenido
de la secuencia de caracteres subyacente 2. la sobrecarga (4) no especificaba cómo se inicializan las secuencias de entrada y salida |
ambos especificados |
| LWG 562 | C++98 |
la sobrecarga
(4)
establecía
epptr()
para apuntar un carácter más allá del último
carácter subyacente si bool ( mode & std:: ios_base :: out ) == true |
epptr()
puede establecerse
más allá de esa posición |
Véase también
|
obtiene o establece los contenidos del objeto de dispositivo de cadena subyacente
(función miembro pública de
std::basic_stringstream<CharT,Traits,Allocator>
)
|
|
|
(C++20)
|
obtiene una vista sobre la secuencia de caracteres subyacente
(función miembro pública) |