笔试可能应用到的冷门函数

自己记录,不定时更新!

1. 定义字符串输入流istringstream

#include<sstream>
string str = "hello world";
string strWord;
istringstream strStream(str); //定义流输入变量,并初始化
while(strStream>>strWord);//流输入每次只流入一个单词,到空格为止

  具体什么时候应用和用法看下面博文:

http://blog.csdn.net/fx677588/article/details/52713623 去除一段话字符串中重复单词

2. 读取的字符再返回流中ungetc(c,stdin )

#include<cstdio>
char c;
while((c= getchar())!='\n')
    ungetc(c,stdin); //getchar()从流中获得的字符,再返回到流中

  具体什么时候应用和用法看下面博文:

http://blog.csdn.net/fx677588/article/details/52712417 C/C++输入一行每隔一个空格一个数据

3. #include <cctype>包含字符分类函数和转换函数  

  用来检查一个传入的字符型参数是否属于某一个的类别:
 isalnum 检查字符是否为字母数字
 isalpha 检查字符是否为字母
 isblank (c++ 11) 检查字符是否为空格空白
 iscntrl 检查字符是否为控制字符
 isdigit 检查字符是否为十进制数
 isgraph 检查字符是否有图形输出
 islower 检查字符是否为小写字母
 isprint 检查字符是否能输出
 ispunct 检查字符是否为标点
 isspace 检查字符是否为区域空白
 isupper 检查字符是否为大写字母
 isxdigit 检查字符是否为十六进制的数
字符转换函数:
 用来在两个在大小写字母之间转换:
 tolower 将大写字母转换为小写字母
 toupper 将小写字母转换为大写字母

  具体什么时候应用和用法看下面博文:

http://blog.csdn.net/fx677588/article/details/52713623 去除一段话字符串中重复单词

4. #include <algorithm>一些数据处理和迭代器函数

  主要会用到例如交换,反转,排序等功能函数接口

//交换
swap(w1 , w2)//交换两个数,两者可以为int,char,char*字符串数组
//反转
char nzArr[] ="abc";
string str =nzArr;
reverse(str.begin(),str.end());
reverse(nzArr,nzArr+3);//反转功能,参数是地址或迭代器 
//排序,时间复杂度为n*log2(n)
int a[10]={9,6,3,8,5,2,7,4,1,0};
sort(a,a+10); //可以看出,两个参数为均地址,a为起始,a+10为结束位置,默认是从小到大升序排序
bool comp(int a, int b)
{
    return a>b;   //a>b,则是从大到小,a<b则从小到大排序
}
sort(a,a+10,comp);//加了这个函数,则可以从大到小降序排序 

5. 移位实现乘除法

  例如:

 a=a*4; 
  b=b/4; 
// 可以改为:
  a=a<<2; 
  b=b>>2;   

  详细记载在该博文中:

http://blog.csdn.net/fx677588/article/details/52821904 移位运算符替代算术运算符

6.输入输出追求效率

  一些笔试题追求大数据处理,为了在规定时间内完成任务,数据输入使用scanf要比cin流操作快,同理,printf也比cout快。所以数据多的时候,输入输出还是使用scanf/printf函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值