插入迭代器 back_inserter、front_inserter、inserter

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

/*
back_inserter  从后面插入 每一个都在前一个的后面
front_inserter  从前面插入 每一个都在前一个的前面
inserter             后面插入,需要有一个插入位置
*/

#include 
#include 
#include 
#include
#include
using namespace std;
int main()
{
	listivec1,ivec2;
	int ival;
	cout<<"input ival;"<>ival)
		ivec1.push_back(ival);
	cin.clear();
	int value;
	cout<<"input new value"<>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::iterator it=ivec2.begin();it!=ivec2.end();++it)
	{
		cout<<*it<<"  ";
	}
	cout<



你可能感兴趣的:(c++)