std::mover en C++

std::mover
Mueve los elementos del rango [primero, último] al rango que comienza en resultado.
El valor de los elementos en el [primero, último] se transfiere a los elementos señalados por resultado. Después de la llamada, los elementos en el rango [primero, último] se dejan en un estado no especificado pero válido.
Modelo :

OutputIterator move (InputIterator first, InputIterator last, OutputIterator result);

Parameters :

first, last
Input iterators to the initial and final positions in a sequence
to be moved. The range used is [first,last], which contains all
the elements between first and last, including the element pointed
by first but not the element pointed by last.

result
Output iterator to the initial position in the destination sequence.
This shall not point to any element in the range [first,last].

Return type :
An iterator to the end of the destination range where elements have been moved.

Ejemplos:

Input :
vec1 contains : 1 2 3 4 5
vec2 contains : 7 7 7 7 7
Output :
arr2 contains : 7 1 2 3 4
/*First 4 elements of vector vec1 moved to vec2 starting second position*/
// CPP program to illustrate
// std::move and std::move_backward
// STL library functions
#include<bits/stdc++.h>
  
// Driver code
int main()
{
    std :: vector <int> vec1 {1, 2, 3, 4, 5};
    std :: vector <int> vec2 {7, 7, 7, 7, 7};
  
    // Print elements
    std :: cout << "Vector1 contains :";
    for(int i = 0; i < vec1.size(); i++)
        std :: cout << " " << vec1[i];
    std :: cout << "\n";
      
    // Print elements
    std :: cout << "Vector2 contains :";
    for(unsigned int i = 0; i < vec2.size(); i++)
        std :: cout << " " << vec2[i];
    std :: cout << "\n\n";
      
    // std :: move function
    // move first 4 element from vec1 to starting position of vec2
    std :: move (vec1.begin(), vec1.begin() + 4, vec2.begin() + 1);
      
    // Print elements
    std :: cout << "Vector2 contains after std::move function:";
    for(unsigned int i = 0; i < vec2.size(); i++)
        std :: cout << " " << vec2[i];
    std :: cout << "\n";
  
  
  
    return 0;
}

Producción:

Vector1 contains : 1 2 3 4 5
Vector2 contains : 7 7 7 7 7

Vector2 contains after std::move function: 7 1 2 3 4

Este artículo es una contribución de Sachin Bisht . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *