sort (arr, arr n)
為什么我們arr n在(演算法庫中的函式)中寫排序函式C 。這是什么意思arr n?
uj5u.com熱心網友回復:
std::sort接受迭代器到某個范圍的開頭和結尾(端點指向超出范圍的第一個元素)。- 指標可以是迭代器
- 在
C型別陣列中sometype[n]衰減為型別指標:sometype*。Soarr被視為一個指標并按元素arr n推進該指標n(因此它指向陣列之外的第一個元素)。
現在撰寫此代碼以使其更清晰且不易出錯的替代方法:
std::sort(std::begin(arr), std::end(arr));
// or using C 20 ranges:
std::ranges::sort(arr);
uj5u.com熱心網友回復:
std::sort接受一對迭代器,它們用于std::swap對該范圍內的元素進行排序。迭代器必須提供operator*和 的實作operator 。這些需求在這里被定義為“命名需求” 。
如果您對此有所了解,那么任何指標都滿足這些標準。換句話說,您可以將迭代器視為指標的泛化。通過傳遞指向第&arr[0]一個元素的指標和指向最后一個元素的指標,&arr[n]您提供了開始和結束迭代器。arr而arr n對于花哨的縮寫&arr[0]和&arr[n]。
uj5u.com熱心網友回復:
給定 的宣告type arr[],運算式arr n被計算為 中第nth 元素的地址arr。
換句話說(希望它有助于澄清),arr n相當于&arr[n].
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/408333.html
標籤:
