Rumah > pembangunan bahagian belakang > C++ > Bagaimana Menggunakan std::sort untuk Memesan Array dalam C ?

Bagaimana Menggunakan std::sort untuk Memesan Array dalam C ?

Susan Sarandon
Lepaskan: 2024-10-24 01:57:29
asal
571 orang telah melayarinya

How to Use std::sort to Order an Array in C  ?

Isih Tatasusunan dengan std::isih dalam C

Soalan: Bagaimanakah saya boleh menggunakan perpustakaan templat standard C std::sort() untuk menyusun tatasusunan dalam tertib menaik?

<code class="cpp">int v[2000];</code>
Salin selepas log masuk

Jawapan: Dalam C 11, anda boleh menggunakan dua fungsi mudah:

<code class="cpp">std::sort(std::begin(v), std::end(v));</code>
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk

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&amp; c){
  return c.begin();
}

template<class Cont>
typename Cont::iterator end(Cont&amp; c){
  return c.end();
}</code>
Salin selepas log masuk

Konst:

<code class="cpp">template<class Cont>
typename Cont::const_iterator begin(Cont const&amp; c){
  return c.begin();
}

template<class Cont>
typename Cont::const_iterator end(Cont const&amp; c){
  return c.end();
}</code>
Salin selepas log masuk

Lebihan untuk tatasusunan gaya C:

<code class="cpp">template<class T, std::size_t N>
T* begin(T (&amp;arr)[N]){
  return &amp;arr[0];
}

template<class T, std::size_t N>
T* end(T (&amp;arr)[N]){
  return arr + N;
}</code>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan