質問: C 標準テンプレート ライブラリの std::sort() を使用するにはどうすればよいですか?配列を昇順に並べるには?
<code class="cpp">int v[2000];</code>
答え: C 11 では、2 つの便利な関数を利用できます:
<code class="cpp">std::sort(std::begin(v), std::end(v));</code>
追加の質問: C には配列の開始位置と終了位置を決定する方法がありますか?
答え: はい、C 11 では、std::begin と std::end は配列に対してオーバーロードされています。
<code class="cpp">std::sort(std::begin(v), std::end(v));</code>
以前のバージョンの C を使用している場合は、独自のバージョンの begin と end を作成できます:
Non-const:
<code class="cpp">template<class Cont> typename Cont::iterator begin(Cont& c){ return c.begin(); } template<class Cont> typename Cont::iterator end(Cont& c){ return c.end(); }</code>
Const:
<code class="cpp">template<class Cont> typename Cont::const_iterator begin(Cont const& c){ return c.begin(); } template<class Cont> typename Cont::const_iterator end(Cont const& c){ return c.end(); }</code>
C スタイル配列のオーバーロード:
<code class="cpp">template<class T, std::size_t N> T* begin(T (&arr)[N]){ return &arr[0]; } template<class T, std::size_t N> T* end(T (&arr)[N]){ return arr + N; }</code>
以上がC で std::sort を使用して配列を並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。