c++常用库函数

 1,int numerator

long long num=static_cast<long long>(numerator) //将int型转换位long long型

2,llabs()  //long long类型取绝对值

3,字符串拼接,s.append()

4,整数转字符串,to_string(num)

5,字母转整数,s-'A'+1     字符数字转整型,'1'-'0'

6,排序函数sort(),形式有sort(nums.begin(),nums.end()),也可自定义排序方法,sort(nums.begin(),nums.end(),compare),注意compare是静态方法,

要加static关键字。

7,位运算符,<<左移末尾补0,>>右移首部补0,运算符后面加上要移动的位数。定义一个只有一位为1的数,uint32_t n=1,n<<=1;

8,对于if(条件1&&条件2&&条件3),代码运行时会从左往右检查条件,若左边条件有越界,右边的条件防止越界,代码运行出错,此时应将条件换一下位

置,将会越界的情况放置末尾。

9,字符串转整数,stoi(str)

10、位运算:二进制无进位加法,是异或运算;进位值为与运算左移一位。

11、删除字符串头尾空格

if(!str.empty()){
            str.erase(0,str.find_first_not_of(" "));
            str.erase(str.find_last_not_of(" ") + 1);
}

12、lower_bound(nums.begin(),nums.end(),val),如果找不到与value值相同的元素,则返回第一个“不小于value”的元素的位置。                                             upper_bound(nums.begin(),nums.end(),val),如果找不到与value值相同的元素,则返回第一个“不大于value”的元素的位置。
 vector使用二分查找向有序数组中插入数字,不会改变其顺序,使用方法:nums.insert(lower_bound(nums.begin(),nums.end(),val),val)。

13、sort自定义排序:sort(nums.begin(),nums.end(),cmp),其中cmp是自定义的静态方法。static bool cmp(){};

14、push_back和emplace_back,vector容器添加元素的两种方法,push_back()向容器中加入一个右值元素(临时对象)时,
首先会调用构造函数构造这个临时对象,然后需要调用拷贝构造函数将这个临时对象放入容器中。原来的临时变量释放。
这样造成的问题就是临时变量申请资源的浪费。emplace_back可以在插入的时候直接构造,就只需要构造一次即可。
添加字符串:vector<string>res; res.emplace_back(2,'a');//结果为["aa"],重复添加两次字符'a'

15、vector中指定位置插入元素:vector<int>v; v.insert(v.begin(),val);

16、升序队列,小顶堆:priority_queue <int,vector<int>,greater<int> > q;
        降序队列,大顶堆:priority_queue <int,vector<int>,less<int> >q;

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值