首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-10-08 
替换deque中的内容:assign()成员函数通过迭代器可以修改deque中的内容,但是一次只能替换一个对象;利用assi

替换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的大小。

热点排行