您的位置:首页 > 其它

插入迭代器 back_inserter、front_inserter、inserter

2016-09-01 16:06 369 查看
编写程序使用 replace_copy 将一个容器中的序列复制给另一个容器,并将前一个序列中给定的值替换为指定的新值。分别使用 inserter、back_inserter 和 front_inserter 实现这个程序。讨论在不同情况下输出序列如何变化。

/*

back_inserter  从后面插入 每一个都在前一个的后面

front_inserter  从前面插入 每一个都在前一个的前面

inserter             后面插入,需要有一个插入位置

*/

#include <iostream>
#include <string>
#include <list>
#include<algorithm>
#include<iterator>
using namespace std;
int main()
{
list<int>ivec1,ivec2;
int ival;
cout<<"input ival;"<<endl;
while(cin>>ival)
ivec1.push_back(ival);
cin.clear();
int value;
cout<<"input new value"<<endl;
cin>>value;

//back_inserter 创建使用 push_back 实现插入的迭代器。
//replace_copy(ivec1.begin(),ivec1.end(),back_inserter(ivec2),0,value);

//front_inserter,使用 push_front 实现插入。 vector 不可以使用
//replace_copy(ivec1.begin(),ivec1.end(),front_inserter(ivec2),0,value);

/*inserter,使用 insert 实现插入操作。除了所关联的容器外,inserter
还带有第二实参:指向插入起始位置的迭代器。 */
replace_copy(ivec1.begin(),ivec1.end(),inserter(ivec2,ivec2.begin()),0,value);

for(list<int>::iterator it=ivec2.begin();it!=ivec2.end();++it)
{
cout<<*it<<" ";
}
cout<<endl;
return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐