C++ 算法 move_backward()函数

C++ 算法 move_backward()函数

该函数用于向后移动元素,接受三个参数并移动属于范围[first,last)的元素。元素的移动是以逆序开始,并在’result’处终止。

语法

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

参数

first : 这是一个双向迭代器,指向范围的第一个元素,元素本身包括在范围内。

last : 这是一个双向迭代器,指向范围的最后一个元素,元素本身不包括在范围内。

result : 这是一个双向迭代器,指向移动元素的最终位置。

返回值

该函数返回一个迭代器,指向移动元素序列的第一个元素。

示例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] [] [] [] [] []

示例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

复杂度

从第一个元素到最后一个元素,函数的复杂度是线性的。

数据竞争

访问了一些或全部容器对象。

异常

如果容器中的任何一个元素抛出异常,函数会抛出一个异常。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程