常用的拷贝与替换算法

Copy: 

vector<int> vecInts;

 vecInts.push_back(1);

 vecInts.push_back(3);

 vecInts.push_back(5);

 vecInts.push_back(7);

 vecInts.push_back(9);



 vector<int> vecIntb; 

 vecIntb.resize(5);   //扩大空间

 copy(vecInts.begin(),vecInts.end(), vecIntb.begin());

//此时vecIntb: {1,3,5,7,9}

 

replace: 


replace(beg,end,oldValue,newValue):    将指定范围内的所有等于 oldValue 的元素替 换成 newValue。

vector<int> vecInts;

vecInts.push_back(1);

vecInts.push_back(3);

vecInts.push_back(5);

vecInts.push_back(3);

vecInts.push_back(9);



replace(vecInts.begin(),vecInts.end(), 3, 8);  //{1,8,5,8,9}

replace_if

replace_if : 将指定范围内所有操作结果为 true 的元素用新值替换。 举个例: replace_if(vecIntsb.begin(),vecIntsb.end(),GreaterThree,newVal) 其中vecIntsb是用 vector<int>声明的容器 GreaterThree 函数的原型是 bool GreaterThree(int iNum)

如下:

bool GreaterThree(int iNum)

{

if(iNum>=3)

{

return true;

}

else

{

return false;

}

}



//把大于等于 3 的元素替换成 8

vector<int> vecIntsb;

vecIntsb.push_back(1);

vecIntsb.push_back(3);

vecIntsb.push_back(5);

vecIntsb.push_back(3);

vecIntsb.push_back(9);

replace_if(vecIntsb.begin(),vecIntsb.end(),GreaterThree,8);



 

swap

swap: 交换两个容器的元素

vector<int> vecInts;

vecInts.push_back(1);

vecInts.push_back(3);

vecInts.push_back(5);

vecInts.push_back(15);



vector<int> vecIntb;

vecIntb.push_back(2);

vecIntb.push_back(4);

vecIntb.push_back(45);

vecIntb.push_back(54);



swap(vecInts, vecIntb);  //交换

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值