【发布时间】:2021-06-03 01:18:49
【问题描述】:
STL 排序函数接受数组的起点和终点两个参数,那么我们为什么要通过
sort(arr,arr+n);
而不是
sort(arr,arr+n-1);
因为n-1是数组的结束指针
【问题讨论】:
STL 排序函数接受数组的起点和终点两个参数,那么我们为什么要通过
sort(arr,arr+n);
而不是
sort(arr,arr+n-1);
因为n-1是数组的结束指针
【问题讨论】:
容器的结尾由它的end() 迭代器标记,它指向最后一个元素之后而不是最后一个元素。对于指针,它是相同的。 C++ 对大多数算法使用半开区间的约定,即[begin, end) 包括begin 但不包括end。
对你调用的空范围进行排序
std::sort(arr,arr);
使用您调用的n 元素对范围进行排序
std::sort(arr,arr+n);
使用[a,b](即包括a 和b),表示一个空范围就不会那么简单了。
【讨论】:
for (int i = 1: i <= n; ++i),所以与for range的平行可能会有偏差。
<random> 标头。