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

控制输出位数

#include  //需要包含此头文件
cout << "a=" << setprecision(2) << a <灵活使用ceil() floor() 向上取整,向下取整

int a=2;
cout<>>0
>>>0
>>>1
>>>0

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

vectorvalue;
//在使用accumulate求和时
if(accumulate(value.cbegin(),value.cend(),0))
    cout<<"wrong!"<

你可能感兴趣的:(C++)