首頁 >後端開發 >C++ >如何在 C 中使用 std::sort 對陣列進行排序?

如何在 C 中使用 std::sort 對陣列進行排序?

Susan Sarandon
Susan Sarandon原創
2024-10-24 01:57:29566瀏覽

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

在C 中使用std::sort 對陣列進行排序

問題: 如何使用C 標準範本庫的std::sort( )按升序排列數組?

<code class="cpp">int v[2000];</code>

答案:在C 11 中,您可以使用兩個方便的函數:

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

附加問題: C🎜>

附加問題: C🎜>

附加問題:
<code class="cpp">std::sort(std::begin(v), std::end(v));</code>
C🎜>

附加問題:

C🎜>附加問題:

C有辦法確定陣列的開始和結束位置嗎?
<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>

答案: 是的,在 C 11 中,std::begin 和 std::end 是陣列重載。

<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>

如果您使用的是早期版本的C ,您可以建立自己的begin 和end 版本:

非常量:
<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>
常數:C 樣式陣列的重載:

以上是如何在 C 中使用 std::sort 對陣列進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn