C++笔试题常用STL以及其他小操作使用汇总

字符串string

  • substr操作:
string s("lewis");
//返回一个string 包含s中从pos开始的n个字符的拷贝 默认0-s.size()
s.substr(pos,n);
  • 改变string的方法:
string s("lewis");
s.insert(pos,args); //在pos之前插入 注意这里pos使用下标,使用迭代器会报错。
s.erase(pos,len);   //从pos开始删除
s.assign(args);     //使用args的内容替换s原本的字符串 返回的是s的引用
s.append(args);
s.replace(range,args) //range是一个下标和一个长度,或者是s的一对迭代器
//args 可以是字符串str 
//     也可以是str,pos,len 
//     cp,(len)
//     n,c n个字符c
//     b,e  一对迭代器
//可以说非常的灵活了


  • string和数值之间的转换:
to_string(val);//把值val转换为字符串,val可以是任意算术类型
stoi(s,p,b); //返回s的起始子串(表示整数内容)的数值,b是转换用的基数,默认是10,p是size_t指针,用来保存s中第一个数字的下标,p默认0即不保存下标
stol(s,p,b);
stof(s,p,b); //l:long  f: float d:double
stod(s,p,b);

关联容器 set map

  •  判断要处理的元素是否已经存在于set中:
c.find(k);//返回一个迭代器,指向第一个关键字为k的元素,若k不在容器中,则返回迭代器 ==c.end()
c.count(k);//返回关键字等于k的元素的数量 ==0则set为空
c.equal_range(k);//返回一个迭代器的pair,表示关键字等于k的元素的范围,若k不存在,pair的两个成员均等于c.end()

  • 对map操作 下标和find 灵活选用
map<string,int>word_cnt;
word_cnt["hello"];//使用下标运算符的时候,如果"hello"不在map中 会使用值初始化给对应这里的int一个初值0
word_cnt.find("hello");//这里则会返回尾后迭代器,不会自动生成hello的map

控制输出位数

#include<iomanip>  //需要包含此头文件
cout << "a=" << setprecision(2) << a <<endl;//a=0.2124  会输出0.2
//如果想要保留小数点后几位:
cout.setf(ios::fixed);  //对不够的位数进行补零
cout << "a=" <<fixed<< setprecision(2) << a <<endl; //输出a=0.20  
cout.unsetf(ios::fixed); //取消补领
cout<<fixed<<setprecision(2)<<a<<endl; //输出 0.2 不补零 

灵活使用ceil() floor() 向上取整,向下取整

int a=2;
cout<<a/3<<endl;
cout<<ceil(a/3)<<endl;
cout<<ceil((a+0.0)/3)<<endl;
cout<<floor((a+0.0)/3)<<endl;

>>>0
>>>0
>>>1
>>>0

千万记住要保持运算数值间的类型统一!! 尤其设计int 和 long时

vector<long long>value;
//在使用accumulate求和时
if(accumulate(value.cbegin(),value.cend(),0))
    cout<<"wrong!"<<endl;
//因为value里是long long 而求和的初值0是int类型,所以必须使用0LL 常见的还有0L 0F 0D
if(accmulate(value.cbegin(),value.cend(),0LL))
    cout<<"right" <<endl;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值