STL常用函数

常用函数

文章目录

  • 常用函数
  • sort
    • 用法
    • example
  • 最小公倍数和最大公约数
    • gcd
      • 用法
      • 原理
      • example
    • lcm
      • 原理
      • example
  • reverse
    • 用法
  • unique
    • 用法
  • accumulate
    • 用法
  • count
    • 用法
    • example
  • fill
    • 用法
    • example
  • max min
    • 用法

sort

用法

  • sort(buf, buf + len); //数组起始地址,数组结束地址=起始地址==+数组长度==
  • sort(buf, buf + len,cmp);//数组起始地址,数组结束地址
  • sort(v.begin(),v.end());// 向量

example

bool cmp(int x, int y){
return x > y;// 降序
}
sort(buf, buf + 100, cmp); 

最小公倍数和最大公约数

gcd

用法

__gcd(a,b) 注意两个-

原理

gcd(a,b)=gcd(b,a%b)

example

// 方式1 内置函数  _gcd(a,b)
cout<<__gcd(a,b)<<endl;
// 方式2
int gcd(int a,int b){
	return b==0?a:gcd(b,a%b);
}
// 方式3
int gcd(int a,int b){
    while(b!=0){
        a = a%b;
        swap(a,b);
    }
    return a;
}

lcm

原理

lcm(a,b)=a*b/gcd(a,b)

example

int lcm(int a,int b){
    return a*b/__gcd(a,b);
}

reverse

用法

reverse(a + 1, a + n + 1):将数组中的元素反转。a 是数组名,n是长度,跟 sort 的用法一样。值得一提的是,对于字符型数组也同样适用。也在 algorithm 库中。

unique

用法

unique(a + 1, a + n + 1):去重函数。跟sort的用法一样。不过他返回的值是最后一个数的地址,所以要得到新的数组长度应该这么写: _n = unique(a + 1, a + n + 1) - a - 1.

accumulate

用法

int sum = accumulate(vec.begin() , vec.end() , 0);

accumulate带有三个形参:头两个形参指定要累加的元素范围,第三个形参则是累加的初值。

count

用法

count(ivec.begin() , ivec.end() , searchValue)

这个函数作用是统计在一定范围内某一值出现的次数

example

#include 
using namespace std;

int main() {
   int n, x;
   cin >> n >> x;
   stringstream ss;
   for (n++; --n; ss << n);     //把1-n的值都存放到字符串流中
   string s = ss.str();
   cout << count(s.begin(), s.end(), x + '0') << endl;    //运用count函数直接出结果,简简单单
   return 0;
}

fill

用法

  1. 用迭代器初始化
  • fill(begin(),end(),value);
  1. 一维数组初始化
  • fill(array,array+length,value);
  1. 二维数组初始化
  • fill(arr[0],arr[0]+m*n,value);
  1. 三维数组初始化
  • fill(arr[0][0],arr[0][0]+m*n*l,value);

example

int a[10];
fill(a,a+10,13);
for(int i=0;i<10;i++){
    cout<<a[i]<<endl;
}

max min

用法

  • max(T a,T b);
  • max(T a,T b,comparator op);
  • min(T a,T b);
  • min(T a,T b,comparator op);

你可能感兴趣的:(STL常用函数)