#include<algorithm>
sort函数 可以用于数组排序或者vector或者自定义数据排序 前提是定义了<运算符
对于数组sort(a,a+n)
对于vector(a,begin(),a.end()) 参数为迭代器
stable_sort:稳定排序算法,维持相等元素原有的顺序。
bool cmp(int a, int b) { //相当于小于运算符
if (a < b) return true;
return false;
} //如果数组中有相同的元素,并且 return true 会运行出错
int main()
{
vector<int > arr1{ 1,8,8,7,3 };
int arr2[5] = { 1,8,9,7,3 };
sort(arr2, arr2 + 5);
for (int i = 0; i < 5; i++) {
cout << arr2[i] << endl;
}
sort(arr1.begin(), arr1.end(), cmp);
for (int i = 0; i < 5; i++) {
cout << arr1[i] << endl;
}
} //按照升序排序
lower_bound 用于查找已经排序好的第一个不小于x的元素:
cout<<*lower_bound(arr2, arr2 + 4, 4); //用于数组,返回的是一个地址
cout <<*lower_bound(arr1.begin(), arr1.end(), 4); 用于vector 返回的是一个迭代器
如果想求下标的话:
cout<<lower_bound(arr2, arr2 + 4, 4)-arr2; 减去数组首地址也就是数组名
cout <<lower_bound(arr1.begin(), arr1.end(), 4)-arr1.begin(); 减去begin()