读书人

轮换deque中的内容:assign()成员函数

发布时间: 2013-10-08 17:02:59 作者: rapoo

替换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;

}

执行结果:

轮换deque中的内容:assign()成员函数

上例显示了assign的两种用法:

void assign(const_iterator first,const_iterator last);

void assign(size_type n, const T&x=T());

注:assign()并不要求两个deque具有相同的大小,替换后可以改变deque的大小。

读书人网 >编程

热点推荐