当前位置:编程学习 > C/C++ >>

替换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++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,