首頁  >  文章  >  後端開發  >  c++中的排序函數sort的具體用法

c++中的排序函數sort的具體用法

下次还敢
下次还敢原創
2024-05-01 10:48:171207瀏覽
<blockquote><p>std::sort函數的使用包括:定義需要排序的容器或陣列。呼叫std::sort,指定迭代器範圍。可選:提供自訂比較器以進行自訂排序。注意:std::sort直接將原始容器排序,並只適用於可比較元素。時間複雜度為O(n log n),其中n是元素數。 </p></blockquote> <p><img src="https://img.php.cn/upload/article/202405/01/2024050110481716173.jpg" alt="c++中的排序函數sort的具體用法" ></p> <p><strong>C 中的std::sort函數的用法</strong></p> <p><strong>定義與語法:</strong> </p> <p><code>void sort(iterator start, iterator end)</code></p> <p>其中,<code>start</code>和<code>end</code>是容器或陣列的迭代器,它們指定要排序的元素範圍。 </p> <p><strong>功能:</strong></p> <p><code>std::sort</code>函數對給定的元素範圍進行排序。它使用快速排序或歸併排序的實現,取決於容器的大小。預設情況下,它是升序排序,但是可以提供一個自訂比較器來進行降序或其他類型的排序。 </p> <p><strong>用法:</strong></p> <p><code>std::sort</code>函數主要透過下列步驟使用:</p> <ol> <li> <p><strong>宣告容器或陣列:</strong></p> <pre class="brush:php;toolbar:false"><code class="cpp">vector<int> nums {5, 3, 1, 2, 4};</code></pre> </li> <li> <p><strong>呼叫std::sort:</strong></p> <pre class="brush:php;toolbar:false"><code class="cpp">std::sort(nums.begin(), nums.end());</code></pre> </li> <li> <p><strong>迭代排序後的元素:</strong></p> <pre class="brush:php;toolbar:false"><code class="cpp">for (auto num : nums) { cout << num << " "; }</code></pre></li></ol><p><strong>自訂比較器:</strong></p><p>預設情況下,<code>std:: sort</code>使用<code><</code>運算子進行升序排序。可以透過提供一個自訂比較器來實現其他類型的排序:</p><pre class="brush:php;toolbar:false"><code class="cpp">struct greaterThan { bool operator()(int a, int b) { return a > b; } };</code></pre> <p>然後在呼叫<code>std::sort</code>時使用比較器:</p> <pre class="brush:php;toolbar:false"><code class="cpp">std::sort(nums.begin(), nums.end(), greaterThan());</code></pre> <p><strong>注意事項:</strong></p> <ul> <li> <code>std::sort</code>只能對可比較的元素進行排序(即支援<code><</code>或自訂比較器)。 </li> <li>此函數直接修改提供的容器或數組,它不會傳回一個新的排序後的容器。 </li> <li>對於大型資料集,<code>std::sort</code>的時間複雜度為O(n log n),其中n是序列中元素的數量。 </li> </ul> </li> </ol>

以上是c++中的排序函數sort的具體用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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