最近寫**需要用到排序函式,自己水平有限,故使用c++自帶的庫函式。
sort()定義 :
template
void sort (ranit first, ranit last);
template
void sort (ranit first, ranit last, pred pr);
the first template function reorders the sequence designated by iterators in the
range [first, last) to form a sequence ordered by (page 39) operator< . thus, the
elements are sorted in ascending order.
reference:standard c++ library reference 270頁下。
第乙個模板函式對已知的序列進行排序,其中排序的範圍是 [first , last),預設的排序方式是公升序。
在這裡對範圍進行乙個說明。因為在網上查關於sort的資訊是很多網友只是說範圍中第乙個引數是排序資料起始位址,
後乙個是排序資料的結束位址,這裡有點不太好理解。更具體的說法是:first指向需要排序的資料的起始單元,last指向
需要排序的資料的最後乙個資料的下乙個資料,這個資料不參與排序。
last是不包含在排序範圍內的(左閉右開)。
具體而言就是:
int data[m] = ***;
sort(data , data + m);//對data[m]中的所有資料進行排序
或者sort(&data[0] , &data[m]);//注意陣列data[m]的最後乙個資料是data[m - 1],data[m]並不屬於data[m]
關於C 中的一些概念
1 名稱遮蓋 名稱遮蓋就是子類中宣告的函式名與父類中宣告的函式名相同 返回值,引數型別和個數同於不同無關緊要,函式是否為虛也無關緊要 子類物件訪問不到父類所定義的同名函式。示例1 include class b 結果為 d fun1 b fun1 表明在編譯器內並不是直接查詢虛函式表,來判斷fun1...
關於C 中的一些概念
關於c 中的一些概念 1 iostream和iostream.h的區別 前者沒有字尾,實際上,在編譯器include資料夾裡面可以看到,二者是兩個檔案,開啟檔案就會發現,裡面的 是不一樣的。字尾為.h的標頭檔案c 標準已經明確提出不支援了,早些的實現將標準庫功能定義在全域性空間裡,宣告在帶.h字尾的...
關於C 中new的一些理解
include int main string a new string 實際上分為兩步進行 1.呼叫 void operator new size t size 申請了size大小的記憶體,這個函式是可以過載的,但是第乙個引數必須是size t size 2.呼叫建構函式,但是這一步我們是不能夠修...