Skip to content

常用內建函數

sort

排序

sort(v,v+n);
sort(v.begin(),v.end());

reverse

反轉
reverse(v,v+n);
reverse(v.begin(),v.end());

find

尋找

#include <bits/stdc++.h>
using namespace std;
int main(){
    int v[10]={3,8,1,10,5,6,9,2,7,4};
    cout<<distance(v,find(v,v+10,5)); //4
}

min_element/max_element

取極值

#include <bits/stdc++.h>
using namespace std;
int main(){
    int v[10]={3,8,1,10,5,6,9,2,7,4};
    cout<<distance(v,max_element(v,v+10)); //3
}

pow

次方

#include <bits/stdc++.h>
using namespace std;
int main(){
    cout<<pow(2,3);//8
}

round

四捨五入

#include <bits/stdc++.h>
using namespace std;
int main(){
    cout<<round(10.4)<<"\n";//10
    cout<<round(10.5);//11
}

abs

絕對值

#include <bits/stdc++.h>
using namespace std;
int main(){
    cout<<abs(10)<<"\n";//10
    cout<<abs(-20);//20
}

swap

交換

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a=10,b=20;
    swap(a,b);
    cout<<a<<" "<<b;//20 10
}

sqrt

平方根

#include <bits/stdc++.h>
using namespace std;
int main(){
    cout<<sqrt(16);//4
}

max/min

取極值,形態要完全相同

#include <bits/stdc++.h>
using namespace std;
int main(){
    cout<< max(1,2) <<"\n";//2
    cout<< max({1,5,3,2,4}) ;//5
}

__gcd

最大公因數

#include <bits/stdc++.h>
using namespace std;
int main(){
    cout<<__gcd(12,14);//2
}

lcm

根據因數倍數定理

#include <bits/stdc++.h>
using namespace std;
int main(){
    cout<<12*14/__gcd(12,14);//84
}

__lg

以2為底

#include <bits/stdc++.h>
using namespace std;
int main(){
    cout<<__lg(16);//4
}

log

自然對數

#include <bits/stdc++.h>
using namespace std;
int main(){
    cout<<log(10);//2.30259
}

log10

以10為底

#include <bits/stdc++.h>
using namespace std;
int main(){
    cout<<log10(1000);//3
}