leetcode刷题遇到的函数

sort函数

一)Sort()类似于快排,时间复杂度为n*log2(n)
二)c++标准库里的排序函数的使用方法
I)Sort函数包含在头文件为#include的c++标准库中
II)Sort函数有三个参数:
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
sort函数使用模板:
sort(start,end,排序方法)
排序方法模板:sort(start,end,[](const int a,const int b){return a>b};)//改为从大到小
sort对vector二维数组的排序

sort(envelopes.begin(),envelopes.end(),[](const vector<int>&a,const vector<int>&b){
            return a[0]<b[0]||(a[0]==b[0]&&a[1]>b[1]);//排序条件
        });

lower_bound函数、upper_bound


一)两个函数使用二分查找
1)set和multiset自带lower_bound和upper_bound函数
2)lower_bound用于查找容器中大于等于某值的数,返回这个数的地址。
3)upper_bound用于查找容器中大于某值的数,返回这个数的地址。

//返回下标
int n = lower_bound(a , a + x , target) - a;//x 为数组的长度

//返回地址
auto it =lower_bound(a , a + x , target);
*it = 1;

auto用法


一)auto的原理就是根据后面的值,来自己推测前面的类型是什么。
auto的作用就是为了简化变量初始化,如果这个变量有一个很长很长的初始化类型,就可以用auto代替。
二)
1)用auto声明的变量必须初始化(auto是根据后面的值来推测这个变量的类型,如果后面没有值,自然会报错)
2)函数和模板参数不能被声明为auto(原因同上)
3)因为auto是一个占位符,并不是一个他自己的类型,因此不能用于类型转换或其他一些操作,如sizeof和typeid
4)定义在一个auto序列的变量必须始终推导成同一类型
如果是可用迭代器的对象的话,还可以这样操作:

int main(){
    vector<int>v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    for(auto i : v){
        cout<<i<<" ";
    }
    cout<<endl;
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值