替换deque中的内容:assign()成员函数
通过迭代器可以修改deque中的内容,但是一次只能替换一个对象;利用assign()函数可以实现一次替换多个元素的目的。例子:
#include "stdafx.h"
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
int_tmain(int argc, _TCHAR* argv[])
{
deque<int> c1,c2;
deque<int>::const_iteratorcIter; //限制不能通过迭代器修改元素
c1.push_back(10);
c1.push_back(20);
c1.push_back(30);
c2.push_back(40);
c2.push_back(50);
c2.push_back(60);
cout<<"c1=";
for(cIter=c1.begin(); cIter!=c1.end();++cIter)
{
cout<<" "<<*cIter;
}
cout<<endl;
c1.assign(++c2.begin(),c2.end());//用c2中的内容替换c1中的内容,范围是从c2第二个元素到结束
cout<<"替换后:c1=";
for(cIter=c1.begin(); cIter!=c1.end();++cIter)
{
cout<<" "<<*cIter;
}
cout<<endl;
c1.assign(7,4); //用个替换c1中的内容
cout<<"再次替换后:c1=";
for(cIter=c1.begin(); cIter!=c1.end();++cIter)
{
cout<<" "<<*cIter;
}
cout<<endl;
cout<<"The size of c1 is: "<<c1.size()<<endl;
return 0;
}
执行结果:
上例显示了assign的两种用法:
void assign(const_iterator first,const_iterator last);
void assign(size_type n, const T&x=T());
注:assign()并不要求两个deque具有相同的大小,替换后可以改变deque的大小。
补充:软件开发 , C++ ,