蓝桥杯学习 语言基础

编程基础

scanf   printf

cin cout 

cin cout 自动判断变量类型

cin 输入字符串也是遇到空格或者回车就结束

解决方案:

全局区域的数组默认为零

取消同步流

由于cin和cout需要自动判断变量类型等内部原因,读写效率更低,当数据量较大时,可能导致程序运行超时。

我门可以取消同步流 来加速cin 和cout  加速后效率相差无几。

基本操作

竞赛常用库函数

大小写转换

islower   isupper 判断字符是否为大小写字母

islower(ch1)         isupper(ch1)    函数返回值为bool类型

tolower  和 toupper函数    转换为大小写字母

ascii

A65   a 97

实现大小写的转换

排序sort

sort算法:  时间复杂度O(nlogn)  默认升序排序

sort(起始地址 结束地址的下一位)

升序和降序输出对应的字符

其他库函数

memset()函数  用于设置内存块值的函数,   定义如下: void * memset(void * ptr(指向要设置值的内存块的指针),int value(要设置的值,通常是一个整数,8位二进制整数),size_t num(重置,要设置的字节数Byte=8bit));    

swap(T &a,T &b)函数   : 接受两个参数

a:交换值的第一个变量的引用

b:交换值的第二个变量的引用

swap函数可以实现任意类型的变量,包括基本类型、自定义类型等。

reverse(first,last)函数:  first:指向容器中要反转的第一个元素的迭代器

last:指向容器中要反转的最后一个元素的下一个位置的迭代器

reverse(first,last)函数将(first,last)范围内的元素顺序进行反转。

unique()函数:去除多余的变量;

全排列

next_permutation()函数

用于生成当前序列下一个排列,按照字典序对序列进行重新排序,如果存在下一个排列,则当前序列更改为下一个排列,并返回true.

prev_permutation()函数

最值查找

min(a,b) 返回a和b中较小的那个值,只能传入两个值,或者传入一个列表。

min_element和max_element函数

例如: min_element(st,ed)返回地址(st,ed)中最小的那个值的地址(迭代器),传入参数为两个地址或迭代器

时间复杂度O(n),n为数组大小(由传入的参数决定)

nth_element()函数

二分查找

库函数只能度数组进行二分查找

对一个数组进行二分查找的前提是这个数组中的元素是单调的,一般为单调不减,当然如果是单调不增也可以(需要修改比较函数),可以元素相等。

binary_search函数    再议排序的序列中找找特定元素,通过二分查算法来确定序列中是否存在目标元素。函数返回bool值(true/false)。

lower_bound(st,ed,x)   返回地址(st,ed)中第一个大于等于x的元素的地址。

upper_bound(st,ed,x)   返回地址  (st,ed)中第一个大于x的元素的地址。

相当于左闭右开

STL库函数

vector容器

应用:将元素置于一个动态数组中加以管理的容器

vector可以随机存取元素,在尾部添加或移除元素非常迅速,在中部或头部插入元素或移除元素比较费时。 

  

  • 34
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值