sort 在C++标准库中被称为:
sort (first element, last element);
Run Code Online (Sandbox Code Playgroud)
所以,如果我有一个数组:
int a[n];
Run Code Online (Sandbox Code Playgroud)
我应该称之为sort:
sort(&a[0], &a[n-1]);
Run Code Online (Sandbox Code Playgroud)
因为a[0]是第一个元素,a[n-1]也是最后一个元素.但是,当我这样做时,它不会对最后一个元素进行排序.要获得完全排序的数组,我必须使用:
sort(&a[0], &a[n]);
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
因为stl中的范围总是被定义为从第一个元素迭代器到"一个接一个"结束的半开放范围.使用C++ 11,您可以使用:
int a[n];
sort(std::begin(a),std::end(a));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |