,而我是通過STL今天去,我碰到的情況下我的動態分配的數組從arr[0],,..arr[n-1]
排序來了。我用命令訪問未分配的內存,同時從算法STL C++排序
#include<algorithm>
.
.
int *arr = new int[n]();
//loop to take user input for each arr[i]
sort(&arr[0],&arr[n])
上述命令被排序陣列沒有任何錯誤,即使我已分配的內存高達arr[n-1]
。
以下命令排序高達第n-1元素。
#include<algorithm>
.
.
int *arr = new int[n]();
//loop to take user input for each arr[i]
sort(&arr[0],&arr[n-1])
如何爲 '&arr[n]
' 在第一代碼段的工作。
我不明白這個問題。用n代表n個元素,用n-1排序,它只排序n-1,好的,那麼是什麼?你只訪問n-1個元素的情況是UB。 – deviantfan
你不能閱讀'std :: sort'的文檔嗎?這種事情是不允許的嗎? – juanchopanza
對不起,我將從現在開始閱讀文檔:) –