Rumah >pembangunan bahagian belakang >C++ >Cara: Isih Tatasusunan Menggunakan std::isih dalam C
Dalam C , perpustakaan templat standard menyediakan fungsi std::sort() untuk mengisih elemen dengan cekap dalam tatasusunan . Untuk tatasusunan yang diisytiharkan sebagai int v[2000], coretan kod berikut menunjukkan cara menggunakan std::sort() untuk mencapai ini:
<code class="cpp">#include <algorithm> int main() { int v[2000]; std::sort(std::begin(v), std::end(v)); }</code>
Walau bagaimanapun, std::begin() dan std: :end() fungsi yang diperkenalkan dalam C 0x/11 adalah penting untuk pendekatan ini. Fungsi ini mengembalikan iterator yang mewakili permulaan dan penghujung bekas tertentu, termasuk tatasusunan.
Jika anda tidak mempunyai akses kepada C 0x, anda boleh mentakrifkan sendiri fungsi ini:
Mulakan fungsi untuk bekas bukan const:
<code class="cpp">template<class Cont> typename Cont::iterator begin(Cont& c) { return c.begin(); }</code>
Fungsi tamat untuk bekas bukan const:
<code class="cpp">template<class Cont> typename Cont::iterator end(Cont& c) { return c.end(); }</code>
Mulakan fungsi untuk bekas const:
<code class="cpp">template<class Cont> typename Cont::const_iterator begin(Cont const& c) { return c.begin(); }</code>
Fungsi akhir untuk bekas const:
<code class="cpp">template<class Cont> typename Cont::const_iterator end(Cont const& c) { return c.end(); }</code>
Lebihan beban 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>
Dengan menggunakan fungsi ini, anda boleh mengisih tatasusunan dengan lancar menggunakan std::sort() dalam C .
Atas ialah kandungan terperinci Cara: Isih Tatasusunan Menggunakan std::isih dalam C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!