从末尾开始将[first,last]范围内的元素移动到终止于结果的范围内。
该函数首先将*(last-1)移至*(result-1),然后向后跟随这些元素之前的元素,直到到达第一个元素(并包括它)。
模板 :
BidirectionalIterator2 move_backward (BidirectionalIterator1 first,
BidirectionalIterator1 last,
BidirectionalIterator2 result);
result
Bidirectional iterator to the past-the-end position in the destination sequence.
This shall not point to any element in the range [first,last].
Return Type :
An iterator to the first element of the destination sequence where elements
have been moved.
例子:
Input :
vec1 contains : 3 4 5 7 8
vec2 contains : 8 9 6 2 4 7
Output :
arr2 contains : 8 9 6 5 7 8
/*3 elements from 3rd position of vector vec1 moved to starting 4th position of vec2*/
// CPP program to illustrate
// std::move and std::move_backward
// STL library functions
#include
// Driver code
int main()
{
std :: vector vec1 {1, 2, 3, 4, 5};
std :: vector 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_backward function
std :: move_backward (vec2.begin(), vec2.begin() + 3, vec1.begin() + 3);
// Print elements
std :: cout << "Vector1 contains after std::move_backward function:";
for(unsigned int i = 0; i < vec1.size(); i++)
std :: cout << " " << vec1[i];
std :: cout << "\n";
return 0;
}
输出:
Vector1 contains : 1 2 3 4 5
Vector2 contains : 7 7 7 7 7
Vector1 contains after std::move_backward function: 7 7 7 4 5
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。