STL copy_backward函数

STL copy_backward函数算法

STL 中的 copy_backward() 会像 copy() 那样复制元素,但是从最后一个元素开始直到第一个元素。copy_backward() 会复制前两个迭代器参数指定的序列。

STL copy_backward函数详解

头文件

#include <algorithm>

语法

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

参数

参数 描述
first 输入迭代器
last 输入迭代器
result 指出复制到目标区间的具体位置

说明

返回一个迭代器,指出已被复制元素区间的起始位置。

案例

STL copy_backward函数

使用 STL copy_backward 函数拷贝集合

#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { std::cout << "嗨客网(www.haicoder.net)\n" << std::endl; vector<int> myvector; vector<int>::iterator iter; for ( int i = 1; i <= 5; ++i ) { myvector.push_back( i*10 ); } myvector.resize( myvector.size()+3 ); copy_backward( myvector.begin(), myvector.begin()+2, myvector.end() ); for ( iter = myvector.begin(); iter != myvector.end(); ++iter ) { cout << " " << *iter; } cout << endl; myvector.clear(); for (int i = 1; i <= 5; ++i ) { myvector.push_back( i*10 ); } copy_backward( myvector.end()-2, myvector.end(), myvector.end()-3 ); for ( iter = myvector.begin(); iter != myvector.end(); ++iter ) { cout << " " << *iter; } cout << endl; return 0; }

我们在 Linux 下使用 g++ 进行编译,具体命令如下:

g++ copy_backward.cpp -std=c++11

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

40_STL copy_backward函数.png

我们使用了 copy_backward 函数,实现了集合的拷贝。

STL copy_backward函数总结

STL 中的 copy_backward() 会像 copy() 那样复制元素,但是从最后一个元素开始直到第一个元素。copy_backward() 会复制前两个迭代器参数指定的序列。