<アルゴリズム>を使用してヘッダーファイルをインポートする必要があります
書式#include <アルゴリズム>
構文の説明:ソート(開始、終了、CMP)、CMP引数ことはできない、デフォルト以外の降順が存在しない場合。
I. 基本的なデータ型intソート使用ケース
書式#include <iostreamの> の#include <アルゴリズム> 書式#include <CStringの> 使用して 名前空間はstdを、 INT メイン() { INT [ 5 ] = { 1、3、4、2、5 }。 ソート(A + 5 )。 以下のために(int型 i = 0 ; iは< 5 ; iは++ ) COUT << [I] << ' ' 。 リターン 0 ; }
何CMPパラメータ、デフォルトの非降順がないため、結果は次のとおりです。
1 2 3 4 5
デザインは非昇順であれば、関数cmpが準備します:
ブールCMP(int型B、int型)
{
> bを返します。
}
実際には、このような単純なタスク(タイプサポート「<」、「>」比較演算子など)、クラスを書くために絶対に必要はありませんため。標準ライブラリは、機能的な内部に、既製のラインに来たが含まれています。機能的には、テンプレートベースの比較の関数オブジェクトの束を提供します。彼らは(意味を知っている名前を参照)、次のとおりです。equal_to <タイプ>、<タイプ>、大きい<タイプ>、greater_equalで<タイプ>、あまり<タイプ> not_equal_to、less_equal <タイプ>。この問題のために直接使用することを引き継ぐために、大きく、あまり十分です:
升序:ソート(開始、終了、以下<データタイプ>());
降序:ソート(エンド、大きな<データ型>開始())。
INT のmain() { int型 [ 20 ] = { 2、4、1、23、5、76、0、43、24、65 }、I。 用(i = 0 ; iは< 20 ; iは++ ) COUT << [I] << ENDL。 ソート(A + 20、より大きな< INT > ()); 用(i = 0 ; iは< 20 ; iは++ ) COUT<< [I] << ENDL。 リターン 0 ; }
文字列のII。リファレンスデータ型
ソート文字列の中で:
イテレータシーケンシャル順序を使用して達成することができます
書式#include <iostreamの> の#include <アルゴリズム> 書式#include <CStringの> 使用して 名前空間はstdを、 int型のmain() { 文字列 strの(" Hello Worldの" ); ソート(str.begin()、str.end()); coutの << STR。 リターン 0 ; }
結果:スペースdehllloorw
リバースイテレータを使用して、逆の順序を完了することができます
書式#include <iostreamの> の#include <アルゴリズム> 書式#include <CStringの> 使用して 名前空間はstdを、 int型のmain() { 文字列 strの(" Hello Worldの" ); ソート(str.rbegin()、str.rend()); coutの << STR。 リターン 0 ; }
結果:wroolllhdeスペース
文字列の並べ替えとの比較
書式#include <iostreamの> の#include <CStringの> の#include <アルゴリズム> 使用して 名前空間はstdを、 INT メイン() { 文字列 [ 4 ]。 以下のために(int型 i = 0 ; iは< 4 ; iは++ ) のgetlineを(CIN、[I])。 ソート(A + 4 )。 以下のために(int型 i = 0 ; iは< 4 I ++; ) COUT << [I] << ENDLと、 リターン 0 ; }
III二つの構造の例でソーティング
書式#include <iostreamの> の#include <アルゴリズム> 書式#include <CStringの> 使用して 名前空間はstdを、 構造体のリンク { int型、B。 }。 BOOL CMP(リンクX、リンクY) { 場合(XA == YA) 戻り XB> YB。 リターン XA> 屋。 } int型のmain() { リンク・X [ 4 ]。 以下のために(int型 i = 0 ; iは< 4 ; iは++ ) CIN >> X [i]は.A >> X [i]は.B。 ソート(X、X+ 4 、CMP)。 以下のために(int型 i = 0 ; iは< 4 ; iは++ ) COUT << X [i]は.A << ' ' << X [i]は.B << ENDL。 リターン 0 ; }