stl学习笔记4

// stl/copy

/*
copy() function 执行复写(overwrite)动作,要求指出第一区间的 起点和终点,指出第二区间的起点,
如果第二区间的大小不足,copy函数会覆写 end()后面的部分,可能会引起程序崩溃,或者更严重的后果。
所以如果不用 insert iterators,那么就要求保证呢个目的有足够大的空间,下面程序用了两种方法

container.resize(size());
container(size())
*/


#include 
< iostream >
#include 
< vector >
#include 
< list >
#include 
< deque >
#include 
< algorithm >
using   namespace  std;
int  main()
{
    list
<int> coll1;
    vector
<int> coll2;

    
for(int i =1;i<9;++i)
    
{
        coll1.push_back(i);
    }


    
/*
    ** use resize()
    
*/


    coll2.resize(coll1.size());

    
// copy function  
    copy(coll1.begin(),coll1.end(),  // source 从 coll1.begin() 到coll1.end()
        coll2.begin());                // destination

    
// use container(size())
    deque<int> coll3(coll1.size());
    copy(coll1.begin(),coll1.end(), 
// soruce
        coll3.begin());

    vector
<int>::iterator itr2;
    deque
<int>::iterator itr3;

    
for(itr2 = coll2.begin(); itr2 != coll2.end();++itr2)
        cout 
<<*itr2<<' ';
    cout 
<<endl;

    
for(itr3 = coll3.begin(); itr3 != coll3.end();++itr3)
        cout 
<<*itr3<<' ';
    cout 
<<endl;

}


/*
Output Result:
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
*/
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值