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

25 篇文章 1 订阅
1 篇文章 0 订阅

通过迭代器可以修改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的大小。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值