這段代碼是關于對陣列進行排序
#include <bits/stdc .h>
using namespace std;
int main()
{
int arr[] = { 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };
int n = sizeof(arr) / sizeof(arr[0]);
這里我們采用兩個引數,陣列的開頭和我們希望陣列排序的長度 n
//我無法理解這一行 arr n 如何在這里指定結束位置?
**sort(arr, arr n);**
.
cout << "\nArray after sorting using "
"default sort is : \n";
//這里我開始列印陣列
for (int i = 0; i < n; i)
cout << arr[i] << " ";
return 0;
}
uj5u.com熱心網友回復:
對于陣列,陣列名稱 arr 表示指向陣列第一個元素的迭代器, n 會將迭代器增加 n 個元素。在您的情況下,排序演算法應該采用開始迭代器和指向最后一個元素之外的迭代器。
arr:開始迭代器 arr n:結束迭代器(超過最后一個元素)
通常,演算法不計算其范圍內的結束迭代器,所以它是這樣的。
uj5u.com熱心網友回復:
標準庫的約定是范圍必須作為指向第一個元素的迭代器和指向最后一個元素之后的迭代器提供。
所以你的序列有 10 個元素
array = { 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };
index => 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
soarr[0]指向第一個元素并arr[10]指向最后一個元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/384813.html
