STL相关常用算法总结
头文件:#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()); //求两个有序容器的差集
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理