Heim >Backend-Entwicklung >C++ >Wie verwende ich std::sort, um ein Array in C zu ordnen?
Frage: Wie kann ich std::sort() der C-Standardvorlagenbibliothek verwenden? ein Array in aufsteigender Reihenfolge anordnen?
<code class="cpp">int v[2000];</code>
Antwort: In C 11 können Sie zwei praktische Funktionen nutzen:
<code class="cpp">std::sort(std::begin(v), std::end(v));</code>
Zusätzliche Frage : Hat C eine Möglichkeit, die Start- und Endpositionen eines Arrays zu bestimmen?
Antwort: Ja, in C 11 sind std::begin und std::end vorhanden überladen für Arrays.
<code class="cpp">std::sort(std::begin(v), std::end(v));</code>
Wenn Sie eine frühere Version von C verwenden, können Sie Ihre eigenen Versionen von begin und end erstellen:
Non-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>
Const:
<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>
Ü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>
Das obige ist der detaillierte Inhalt vonWie verwende ich std::sort, um ein Array in C zu ordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!