C++ 算法 中的 move_backward函数

首页 / C++入门教程 / C++ 算法 中的 move_backward函数

该函数用于按向后顺序移动元素,它接受三个参数,然后移动属于参数[first,last)的元素。元素的移动以相反的顺序开始,终止点为"结果"。

move_backward - 语法

template<class BidirectionalIterator1, class BidirectionalIterator2>
BidirectionalIterator2 move_backward(BidirectionalIterator1 first, BidirectionalIterator1 last, BidirectionalIterator2 result);

move_backward - 参数

first:它是参数的第一个元素的双向迭代器,其中元素本身包含在参数中。

last:这是参数最后一个元素的双向迭代器,其中元素本身不包含在参数中。

result:它是移动元素最终位置的双向迭代器。

move_backward - 返回值

该函数将第一个元素的迭代器返回到已移动元素的序列。

move_backward - 例子1

#include <iostream>     
#include <algorithm>   
#include <string>       
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] [] [] [] [] []

move_backward - 例子2

#include<bits/stdc++.h>
int main()
{
	std ::vector <int> u1 {5,9,14,8,18};
	std ::vector <int> 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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

赵成的运维体系管理课 -〔赵成〕

技术领导力实战笔记 -〔TGO鲲鹏会〕

零基础学Python -〔尹会生〕

浏览器工作原理与实践 -〔李兵〕

动态规划面试宝典 -〔卢誉声〕

Go 并发编程实战课 -〔晁岳攀(鸟窝)〕

运维监控系统实战笔记 -〔秦晓辉〕

结构写作力 -〔李忠秋〕

云原生基础架构实战课 -〔潘野〕

好记忆不如烂笔头。留下您的足迹吧 :)