插入迭代器

插入迭代器

接受一个容器,生成一个迭代器,实现向给定容器插入元素

操作

it = t

在it指定的当前位置插入值t,且根据插入迭代器的类型不同,分别调用c.push_back(t), c.oush_front(t), c.insert(t,p)

*it, it++, ++it

有这些形式,但是什么都不做

类型

  • back_inserter
    创建一个使用push_back的迭代器

  • front_inserter
    创建一个使用push_front的迭代器

  • inserter
    创建一个使用insert的迭代器
    若it是一个inserter则以下代码

*it = val;

it = c.insert(it, val);
++it;

效果一样
示例:

#include 
#include 
#include 
#include 

using namespace std;

void Output(const list &a){
    ostream_iterator out_iter(cout," ");
    copy(a.cbegin(),a.cend(),out_iter);
    cout << endl;
}
int main(int argc, char *argv[])
{
    lista1 = {1,2,3,4},a2,a3,a4;
    copy(a1.cbegin(),a1.cend(),inserter(a2,a2.begin()));
    copy(a1.cbegin(),a1.cend(),front_inserter(a3));
    copy(a1.cbegin(),a1.cend(),back_inserter(a4));
    Output(a2);
    Output(a3);
    Output(a4);
}

输出

1 2 3 4
4 3 2 1
1 2 3 4

你可能感兴趣的:(插入迭代器)