Soalan: Bagaimanakah saya boleh menggunakan perpustakaan templat standard C std::sort() untuk menyusun tatasusunan dalam tertib menaik?
<code class="cpp">int v[2000];</code>
Jawapan: Dalam C 11, anda boleh menggunakan dua fungsi mudah:
<code class="cpp">std::sort(std::begin(v), std::end(v));</code>
Soalan Tambahan : Adakah C mempunyai cara untuk menentukan kedudukan mula dan akhir tatasusunan?
Jawapan: Ya, dalam C 11, std::begin and std::end adalah terlebih beban untuk tatasusunan.
<code class="cpp">std::sort(std::begin(v), std::end(v));</code>
Jika anda menggunakan versi C yang lebih awal, anda boleh mencipta versi permulaan dan akhir anda sendiri:
Bukan 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>
Konst:
<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>
Lebihan untuk tatasusunan gaya 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>
Atas ialah kandungan terperinci Bagaimana Menggunakan std::sort untuk Memesan Array dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!