头文件:#include<algorithm>
1.常用遍历算法:
- for_each(v.begin(),v.end(),myPrint);
void myPrint(int val)
{
return val;
}
2.常用拷贝和替换算法:
- copy(v.begin(),v.end(),vtarget.begin()); //需要提前开辟vtarget的空间大小
- transform(v1.begin(),v1.end(),v2.begin(), Transform()); //将容器v1的元素搬运到v2中
class Transform
{
public:
bool operator()(int val)
{
return val;
}
};
- replace(v.begin(),v.end(),oldValue,newValue); //将区间内的旧元素替换成新元素
- replace_if(v.begin(),v.end(),greater30(),newValue); //将区间内的元素按指定要求进行替换
class greater30
{
public:
operator()(int val)
{
return val>30;
}
};
- swap(v1,v2); //交换两容器的值
3.常用排序算法:
- sort(v.begin(),v.end()); //默认从小到大排序
- sort(v.begin(),v.end(),greater<int>()); //从大到小排序
- random_shuffle(v.begin(),v.end()); //将指定范围内的元素随机排序
- merge(v1.begin(),v1.end(),v2.begin(),v2.end(),vTarget.begin()); //将容器v1和v2中的元素合并到vTarget中
- reverse(v.begin(),v.end()); //将指定范围内的元素逆序
4.常用算术生成算法:
头文件:#include<numeric>
- accumulate(v.begin(),v.end(),startValue); //计算容器中元素的累计总和,startValue为初始累加值
- fill(v.begin(),v.end(),value); //向容器中填充指定的元素
5.常用集合算法;
- set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),vTarget.begin()); //求两个有序容器的交集
- set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),vTarget.begin()); //求两个有序容器的并集
- set_difference(v1.begin(),v1.end(),v2.begin(),v2.end(),vTarget.begin()); //求两个有序容器的差集
标签:总结,容器,begin,end,val,STL,v2,v1,算法 From: https://www.cnblogs.com/Lee-Summer18/p/16865406.html