首页 > 编程语言 >STL相关常用算法总结

STL相关常用算法总结

时间:2022-11-07 16:56:26浏览次数:56  
标签:总结 容器 begin end val STL v2 v1 算法

头文件:#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

相关文章

  • 【数据结构-链表】链表的相关算法
    目录1删除元素1.1删除值为x的所有结点1.1.1不带头结点的单链表1.1.2带头结点的单链表1.2删除重复元素1.2.1不带头结点的单链有序表1.2.2带头结点的单链有序表2链......
  • 基础算法篇——双指针算法
    基础算法篇——双指针算法本次我们介绍基础算法中的双指针算法,我们会从下面几个角度来介绍:双指针简介双指针基本使用最长连续不重复字符列数组元素的目标和判断子序......
  • 网站渗透总结之Getshell用法大全
    Getshell分为进管理员后台Getshell和不进后台Getshell,本文主要总结常见进后台Getshell和部分。​一、进后台Getshell进台Getshel1、管理员后台直接Getshell管理员后台直接上......
  • js中filter过滤用法总结
    定义和用法filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。注意: filter()不会对空数组进行检测。注意: filter()不会改变原......
  • 粒子群算法
    一种智能算法,其思想就是在一个粒子群中,利用历史最优和当前种群的最优值来在一定程度上影响当前种群的决策对于每个粒子,有2个参数:位置X和速度V每次更新:X=X+V;V=V+r......
  • MySQL_总结_数据类型
    一数值型1整型Tinyint、smallint、mediumint、int/integer、bigint(根据所占的字节的大小越来越大1、2、3、4、8)特点①    都可以设置无符号和有符号,默认有符......
  • 『吴恩达笔记』课程中的Octave语法总结。
    目录​​一、简介​​​​二、基础操作​​​​2.1、行向量:空格或者逗号分割。​​​​2.2、列向量:分号分割。​​​​2.3、矩阵:​​​​三、数据处理​​​​四、矩阵的运......
  • 扩展欧几里得算法
    题目:#include<bits/stdc++.h>usingnamespacestd;intexgcd(inta,intb,int&x,int&y){if(b==0){x=1,y=0;returna;}intx1,y1......
  • MySQL_总结_联合查询
    一、含义Union:合并联合,将多次查询结果合并成一个结果二、语法查询语句1Union【all】查询语句2Union【all】…三、意义1将一条较复杂的查询语句拆分成多条语......
  • Graphics Stack总结(三) Mesa source tree概览
     回顾上篇文章中我们介绍了Mesa的loder模块,该模块负责自动为我们的硬件选择正确的driver。如果loader没能为找到匹配的hardwaredriver,那么它会fallback到softwaredriv......