std::raw_storage_iterator
De cppreference.com
Definido en el archivo de encabezado <memory>
|
||
template< class OutputIt, class T > class raw_storage_iterator |
(hasta C++17) | |
template< class OutputIt, class T > class raw_storage_iterator; |
(desde C++17) (en desuso) (eliminado en C++20) |
|
El iterador de salida std::raw_storage_iterator
hace posible que los algoritmos estándar almacenen los resultados en la memoria no inicializada. Cada vez que el algoritmo escribe un objeto de tipo T
en el iterador desreferenciado, el objeto se copia en la ubicación del almacenamiento no inicializado al que apunta el iterador. El parámetro de plantilla OutputIt
es cualquier tipo que cumpla con los requisitos de OutputIterator y tiene operator* definido para devolver un objeto, para el cual {{c|operator&} } devuelve un objeto de tipo T*
. Por lo general, el tipo T*
se usa como OutputIt
.
Contenido |
[editar] Requerimientos de tipo
-OutputIt debe satisfacer los requisitos de OutputIterator.
|
[editar] Funciones miembro
Crea un nuevo raw_storage_iterator . (función miembro pública) | |
Construye un objeto en el búfer en la ubicación a la que se apunta. (función miembro pública) | |
Dereferencia el iterador. (función miembro pública) | |
Avanza el iterador. (función miembro pública) | |
(desde C++17) |
Proporciona acceso al iterador envuelto. (función miembro pública) |
Heredado de std::iterator
Member types
Miembro de tipo
Original: Member type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
value_type
|
void |
difference_type
|
void |
pointer
|
void |
reference
|
void |
iterator_category
|
std::output_iterator_tag |
[editar] Ejemplo
Ejecuta este código
#include <iostream> #include <string> #include <memory> #include <algorithm> int main() { const std::string s[] = {"Esta", "es", "una", "prueba", "."}; std::string* p = std::allocator<std::string>().allocate(5); std::copy(std::begin(s), std::end(s), std::raw_storage_iterator<std::string*, std::string>(p)); for(std::string* i = p; i!=p+5; ++i) { std::cout << *i << '\n'; i->~basic_string<char>(); } std::allocator<std::string>().deallocate(p, 5); }
Salida:
Esta es una prueba .
[editar] Véase también
(C++11) |
Proporciona información sobre los tipos de asignadores. (plantilla de clase) |
(C++11) |
Implementa un asignador multinivel para contenedores multinivel. (plantilla de clase) |
(C++11) |
Comprueba si el tipo especificado admite construcción con uso de asignador. (plantilla de clase) |