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());    //求两个有序容器的差集

 

posted @   Lovir  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示