std::move_backward
STD:移动[医]倒向
Defined in header | | |
---|---|---|
template< class BidirIt1, class BidirIt2 > BidirIt2 move_backward( BidirIt1 first, BidirIt1 last, BidirIt2 d_last | | (since C++11) |
从范围内移动元素[first, last)
,到另一个范围,以d_last
元素按%28的相反顺序移动,最后一个元素首先移动%29,但它们的相对顺序保持不变。
如果d_last
在(first, last]
...STD:移动必须使用而不是std::move_backward
那样的话。
参数
first, last | - | the range of the elements to move |
---|---|---|
d_last | - | end of the destination range |
类型要求
-Bidirit 1,Bidirit 2必须符合双向测定仪的要求。
返回值
目标范围内的Iterator,指向最后一个移动的元素。
复杂性
一点儿没错last - first
转移任务。
可能的实施
模板<类BidirIt 1,类BidirIt 2>BidirIt 2移动[医]后向%28 BidirIt 1第一次,BidirIt 1最后一次,BidirIt 2 d[医]最后%29{而%285第21=最后%29{%2A%28-d[医]最后%29=std::移动%28%2A%28--最后%29%29;}返回d[医]最后;}
*。
注记
当移动重叠范围时,std::move
当移动到左侧%28时,目标范围的开头位于源范围%29之外std::move_backward
当移动到目标区域的右%28端在源范围%29之外时,则是适当的。
例
二次
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
int main()
{
std::vector<std::string> src{"foo", "bar", "baz"};
std::vector<std::string> dest(src.size()
std::cout << "src: ";
for (const auto &s : src)
{
std::cout << s << ' ';
}
std::cout << "\ndest: ";
for (const auto &s : dest)
{
std::cout << s << ' ';
}
std::cout << '\n';
std::move_backward(src.begin(), src.end(), dest.end()
std::cout << "src: ";
for (const auto &s : src)
{
std::cout << s << ' ';
}
std::cout << "\ndest: ";
for (const auto &s : dest)
{
std::cout << s << ' ';
}
std::cout << '\n';
}
二次
产出:
二次
src: foo bar baz
dest:
src:
dest: foo bar baz
二次
另见
move (C++11) | moves a range of elements to a new location (function template) |
---|
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。