[ Web Proxy ]
URL:
Viewing: http://es.cppreference.com/cpp/iterator/move_iterator [Back]  [Original]

std::move_iterator - cppreference.com
cppreference.com
Espacios de nombres
Variantes

std::move_iterator

De cppreference.com
 
 
Biblioteca de iteradores
Conceptos de iteradores
Primitivas de iteradores
Conceptos de algoritmos y servicios
Conceptos invocables indirectos
Requerimientos comunes de algoritmos
Servicios
Adaptadores de iteradores
Iteradores de flujos
Puntos de personalizacin de iteradores
Operaciones de iteradores
(C++11)
(C++11)
Acceso a rangos
(C++11)(C++14)
(C++11)(C++14)
(C++17)(C++20)
(C++14)(C++14)
(C++14)(C++14)
(C++17)
(C++17)
 
std::istream_iterator
Las funciones miembro
Original:
Member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Terceros funciones
Original:
Non-member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 
Definido en el archivo de encabezado <iterator>
template< class Iter >
class move_iterator;
(desde C++11)

std::move_iterator es un adaptador de iterador que se comporta exactamente igual que el iterador subyacente (que debe ser al menos un InputIterator o modelar a input_iterator (desde C++20)), excepto que desreferenciarlo convierte el valor devuelto por el iterador subyacente a un rvalue. Si este iterador se utiliza como un iterador de entrada, el efecto es que los valores se mueven de l, en lugar de copiarse de l.

Tipos miembro

Tipo miembro Definicin
iterator_type Iter
iterator_category

std::iterator_traits<Iter>::iterator_category

(hasta C++20)

Si std::iterator_traits<Iter>::iterator_category modela std::derived_from<std::random_access_iterator_tag>, esto es std::random_access_iterator_tag. De lo contrario, esto es std::iterator_traits<Iter>::iterator_category sin cambiar

(desde C++20)
iterator_concept
(desde C++20)
std::input_iterator_tag
value_type

std::iterator_traits<Iter>::value_type

(hasta C++20)

std::iter_value_t<Iter>

(desde C++20)
difference_type

std::iterator_traits<Iter>::difference_type

(hasta C++20)

std::iter_difference_t<Iter>

(desde C++20)
pointer Iter
reference

Si std::iterator_traits<Iter>::reference es una referencia, esto es, la versin referencia rvalue del mismo tipo. De lo contrario, (como cuando el iterador envuelto devuelve por valor), esto es std::iterator_traits<Iter>::reference sin cambiar

(hasta C++20)

std::iter_rvalue_reference_t<Iter>

(desde C++20)

Funciones miembro

construye un nuevo adaptador iterador
Original:
constructs a new iterator adaptor
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(funcin miembro pblica) [editar]
asigna otro iterador
Original:
assigns another iterator
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(funcin miembro pblica) [editar]
accede el iterador subyacente
Original:
accesses the underlying iterator
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(funcin miembro pblica) [editar]
accede al elemento apuntado
(funcin miembro pblica) [editar]
obtiene la referencia rvalue al elemento indexado
(funcin miembro pblica) [editar]
avances o disminuye el iterador
Original:
advances or decrements the iterator
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(funcin miembro pblica) [editar]

Objetos miembro

Nombre del miembro Definicin
current (private) Una copia del iterador base(), el nombre es solo para exposicin.

Funciones no miembro

Plantilla:cpp/iterator/move iterator/dsc operator cmp2Plantilla:cpp/iterator/move iterator/dsc operator-2
compara los iteradores subyacentes
(plantilla de funcin) [editar]
avanza el iterador
Original:
advances the iterator
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de funcin) [editar]
calcula la distancia entre dos adaptadores iterador
Original:
computes the distance between two iterator adaptors
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(plantilla de funcin) [editar]
(C++20)
Convierte el resultado de desreferenciar el iterador subyacente a su tipo referencia rvalue asociado
(plantilla de funcin) [editar]
(C++20)
Intercambia los objetos a los que apuntan dos iteradores subyacentes
(plantilla de funcin) [editar]

Ejemplo

#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
#include <numeric>
#include <string>

int main()
{
    std::vector<std::string> v{"esto", "es", "un", "ejemplo"};

    std::cout << "Viejo contenido del vector: ";
    for (auto& s : v)
        std::cout << '"' << s << "\" ";

    typedef std::vector<std::string>::iterator iter_t;
    std::string concat = std::accumulate(
                             std::move_iterator<iter_t>(v.begin()),
                             std::move_iterator<iter_t>(v.end()),
                             std::string());  // puede simplificarse con std::make_move_iterator

    std::cout << "\nConcatenado como una cadena: " << concat << '\n'
              << "Nuevo contenido del vector: ";
    for (auto& s : v)
        std::cout << '"' << s << "\" ";
    std::cout << '\n';
}

Posible salida:

Viejo contenido del vector: "esto" "es" "un" "ejemplo"
Concatenado como una cadena: estoesunejemplo
Nuevo contenido del vector: "" "" "" ""

Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estndares de C++ publicados anteriormente.

ID Aplicado a Comportamiento segn lo publicado Comportamiento correcto
LWG 2106 C++11 Desreferenciar un move_iterator poda devolver una referencia pendiente
si desreferenciar el iterador subyacente devuelve un prvalue
En su lugar devuelve el objeto

Vase tambin

Crea un std::move_iterator del tipo inferido a partir del argumento.
(plantilla de funcin) [editar]
Adaptador de centinela para uso con std::move_iterator
(plantilla de clase) [editar]

Web Proxy Viewer  |  New URL  |  Original Page