STL

sort()

1.对数组内元素进行排序

int a[] = {1,5,3,2};
sort(&a[0],&a[sizeof(a)/sizeof(int)]);
for(int i=0;i<4;i++){
    cout<<a[i]<<' ';
}
输出:1 2 3 5

2.以一定规则排序(使用C++自带的)

double a[] = {1,5,3,2};
sort(&a[0],&a[sizeof(a)/sizeof(double)],greater<double>());  //从大到小排序
//less<double>()为从小到大排序。默认从小到大。

for(int i=0;i<4;i++){
    cout<<a[i]<<endl;
}
输出:5 3 2 1

3.用函数自定义排序规则

1.对“有序”序列进行二分查找(因为只有有序才能二分查找)

用法:二分法若查到此数据,则返回1,没有查到返回0.

2.同理也可查找class或struct

lower_bound()

二分查找下界,查找区间里下标最小的,大于等于"值" 的元素

查找的值存在,得到等于值的指针

查找的值不存在,得到大于“值”的指针

upper_bound()

二分法查找上界,查找区间里下标最小的,大于"值"的元素。

不论所查找的值是否存在,都得到大于“值”的元素的指针

vector

需要 #include <vector>

功能:动态数组

最后更新于