In C stellt die Standardvorlagenbibliothek die Funktion std::sort() bereit, um Elemente in einem Array effizient zu sortieren . Für ein als int v[2000] deklariertes Array zeigt das folgende Codefragment, wie man std::sort() verwendet, um dies zu erreichen:
<code class="cpp">#include <algorithm> int main() { int v[2000]; std::sort(std::begin(v), std::end(v)); }</code>
Allerdings sind std::begin() und std: Die in C 0x/11 eingeführten :end()-Funktionen sind für diesen Ansatz unerlässlich. Diese Funktionen geben Iteratoren zurück, die den Anfang und das Ende eines bestimmten Containers einschließlich Arrays darstellen.
Wenn Sie keinen Zugriff auf C 0x haben, können Sie diese Funktionen selbst definieren:
Anfangsfunktion für nicht konstante Container:
<code class="cpp">template<class Cont> typename Cont::iterator begin(Cont& c) { return c.begin(); }</code>
Endfunktion für nicht konstante Container:
<code class="cpp">template<class Cont> typename Cont::iterator end(Cont& c) { return c.end(); }</code>
Anfangsfunktion für const-Container:
<code class="cpp">template<class Cont> typename Cont::const_iterator begin(Cont const& c) { return c.begin(); }</code>
Endfunktion für const-Container:
<code class="cpp">template<class Cont> typename Cont::const_iterator end(Cont const& c) { return c.end(); }</code>
Überladungen für Arrays im C-Stil:
<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>
Mithilfe dieser Funktionen können Sie ein Array nahtlos mit std::sort() in C sortieren.
Das obige ist der detaillierte Inhalt vonAnleitung: Sortieren eines Arrays mit std::sort in C. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!