📅  最后修改于: 2020-10-17 05:01:52             🧑  作者: Mango
该函数用于按向后顺序移动元素,它接受三个参数,然后移动属于范围[first,last)的元素。元素的移动以相反的顺序开始,终止点为“结果”。
template
BidirectionalIterator2 move_backward(BidirectionalIterator1 first, BidirectionalIterator1 last, BidirectionalIterator2 result);
first:它是范围中第一个元素的双向迭代器,其中元素本身包含在范围中。
last:这是范围最后一个元素的双向迭代器,其中元素本身不包含在范围中。
结果:它是移动元素最终位置的双向迭代器。
该函数将第一个元素的迭代器返回到已移动元素的序列。
#include
#include
#include
int main ()
{
std::string elem[10] = {"kunal","suraj","shweta","chhavi"};
std::move_backward (elem,elem+4,elem+5);
elem[0]="keto";
std::cout << "elem contains:";
for (int j=0; j<10; ++j)
std::cout << " [" << elem[j] << "]";
std::cout << '\n';
return 0;
}
输出:
elem contains: [keto] [kunal] [suraj] [shweta] [chhavi] [] [] [] [] []
#include
int main()
{
std :: vector u1 {5,9,14,8,18};
std :: vector u2 {5,5,5,5};
std :: cout << "u1 contains :";
for(int j = 0; j < u1.size(); j++)
std :: cout << " " << u1[j];
std :: cout << "\n";
std :: cout << "u2 contains :";
for(unsigned int j = 0; j < u2.size(); j++)
std :: cout << " " << u2[j];
std :: cout << "\n\n";
std :: move_backward (u2.begin(), u2.begin() + 3, u1.begin() + 3);
std :: cout << "u1 after applying move_backward function contains:";
for(unsigned int j = 0; j < u1.size(); j++)
std :: cout << " " << u1[j];
std :: cout << "\n";
return 0;
}
输出:
u1 contains : 5 9 14 8 18
u2 contains : 5 5 5 5
u1 after applying move_backward function contains: 5 5 5 8 18
函数的复杂度从第一个元素到最后一个元素都是线性的。
访问某些或所有容器对象。
如果任何容器元素抛出一个异常,该函数将引发异常。