Menggunakan std::sort to Sort Arrays dalam C
Artikel ini membincangkan penggunaan standard template library (STL) function std: :sort untuk mengisih tatasusunan yang diisytiharkan sebagai int v[2000]. Selain itu, ia meneroka sama ada C menawarkan cara asli untuk mendapatkan indeks permulaan dan penamat tatasusunan.
std::sort and Range-Based Sorting
Untuk menggunakan std::sort, anda boleh memanfaatkan gelung berasaskan julat yang diperkenalkan dalam C 11. Pendekatan ini memudahkan proses pengisihan:
<code class="cpp">int v[2000]; std::sort(std::begin(v), std::end(v));</code>
Di mana std::begin dan std::end ialah fungsi utiliti yang kembali iterator masing-masing menunjuk ke yang pertama dan satu melepasi elemen terakhir bekas atau tatasusunan.
Fungsi permulaan dan penamat tersuai
Untuk versi C yang lebih awal, anda boleh mencipta fungsi permulaan dan penamat anda sendiri:
<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(); } 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>
Fungsi ini membebankan fungsi mula dan tamat sedia ada untuk bekas dan tatasusunan, menyediakan antara muka yang konsisten untuk mengakses sempadan julat.
Atas ialah kandungan terperinci Bolehkah saya Mendapatkan Batasan Tatasusunan Menggunakan Fungsi Native C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!