当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ std::move用法及代码示例


std::move
将[first,last]范围内的元素移到从结果开始的范围内。
[first,last]中元素的值将传输到结果所指向的元素。调用之后,[first,last]范围内的元素处于未指定但有效的状态。
模板:

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

参数:

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].

返回类型:
An iterator to the end of the destination range where elements have been moved.

例子:

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; 
}

输出:


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


相关用法


注:本文由纯净天空筛选整理自 std::move in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。