C++algorithmヘッダファイルでの一般的な関数の詳細


6.9 algorithmヘッダファイルでの一般的な関数
Algorithmヘッダファイルの使用
6.9.1 max()、min()、abs()
max(x,y)とmin(x,y)は、それぞれxとyの最大値と最小値を返します.
abs(x)はxの絶対値を返します.浮動小数点型の絶対値はmathヘッダファイルのfabs関数でお願いします.
6.9.2 swap()
swap(x,y)はxとyの値を交換するために使用される
6.9.3 reverse()
reverse(it,it 2)は、配列ポインタが[it,it 2]の間の要素またはコンテナの反復器が[it,it 2]の範囲内の要素を反転することができる.
#include 
#include 
using namespace std;
int main(){
	int a[10] = {10, 11, 12, 13, 14, 15};
	reverse(a, a+4);
	for(int i =  0; i < 6; i++){
		cout<

6.9.4 next_permutation()
​ next_permutation()は、全配列における次のシーケンスを与える
6.9.5 fill()
fill()は、配列またはコンテナ内のある区間をある区間と同じ値に割り当てることができます.
6.9.6 sort()
sortソート用の関数sort( , , )の最初の2つのパラメータは必須です.3番目のパラメータは記入する必要があります.
#include 
#include 
using namespace std;
int main(){
	int a[6] = {9, 4, 2, 5, 6, -1};
	sort(a, a+3);
	for(int i = 0; i < 6; i++){
		cout<

**3番目のパラメータ:**比較関数cmpはどのように実現しますか?
#include 
#include 
using namespace std;
bool cmp(int a, int b){
	return a>b;
}
int main(){
	int a[6] = {9, 4, 2, 5, 6, -1};
	sort(a, a+4, cmp);
	for(int i = 0; i < 6; i++){
		cout<

6.9.7 lower_bound()とupper_bound()
​ lower_bound(first,last,val)は、配列または容器の[first,last)範囲内の最初の値がvalに等しい要素より大きい位置を探し、配列であれば位置のポインタを返し、容器であれば位置の反復器を返す.
​ upper_bound(first,last,val)は、配列または容器の[first,last)範囲内の最初の値がvalより大きい要素の位置を探し、配列であれば位置のポインタを返し、容器であれば位置の反復器を返す.
配列またはコンテナに検索する要素がない場合はlower_bound()とupper_bound()は、要素を挿入できる位置のポインタまたは反復器を返します.