std::swap_ranges
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header <algorithm>
   | 
||
|   template< class ForwardIterator1, class ForwardIterator2 > ForwardIterator2 swap_ranges( ForwardIterator1 first1,  | 
||
Exchanges elements between range [first1, last1) and another range starting at first2.
Contents | 
[edit] Parameters
| first1, last1 | - | the first range of elements to swap | 
| first2 | - | beginning of the second range of elements to swap | 
[edit] Return value
iterator to the element past the last element exchanged in the range beginning with first2.
[edit] Possible implementation
template<class ForwardIterator1, class ForwardIterator2> ForwardIterator1 swap_ranges(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2) { while (first1 != last1) { std::iter_swap(first1++, first2++); } return first2; }  | 
[edit] Example
| This section is incomplete Reason: no example  | 
[edit] Complexity
linear in the distance between first and last
[edit] See also
|    swaps the elements pointed to by two iterators   (function template)  | |
|    swaps the values of two objects   (function template)  | |