刷OJ时C++常用函数

1.std::map的相关操作

map m;
m.insert(pair(1,2))//或者
m[1]=2;
im.count(key);//用来判断是否含有key元素
//遍历
for(map::iterator it=map.begin();it!=map.end();it++)
  {
    if(it->second==1) return it->first;
  }


2.字符串与数字之间的转换

itoa(number,char*str,intradix)//数字,字符数字,和进制
string to_string(val)//将val转换成一个string字符串
int atoi (const char * str);//字符串转换为int
atof();
atol();

3.std:string相关操作

string s.substr(start,length);//返回s从start开始的length个字符
s.push_back();//在末尾添加字符
s.find(str);
s.rfind(str);//查找字符串
s.substr(int index);从index开始的子串
s.assign(str,start,number);s从str的start开始拷贝number个字符
string s(str.begin()+start,str.begin()+end);s从str中拷贝从start到end的字符
s.compare(str);s和str比较
s.find(str);寻找第str在s中第一次出现的位置,没找到则返回s.npos
string temp;
    cin>>temp;
    string s(temp.rbegin(),temp.rend());//实现字符串逆序

4.vector相关操作

nums.assign(nums.begin(),nums.begin()+i); 拷贝
  std::vector first;                                // empty vector of ints
 std::vector second (4,100);                       // four ints with value 100
 std::vector third(second.begin(),second.end());  // iterating through second
 std::vector fourth (third);                       // a copy of third

5.输入重定向

freopen("input.txt","r",stdin);//在vs2013以上版本会说这个函数不安全,在项目属性->C/C++->与处理器->预处理定义中添加宏定义:_CRT_SECURE_NO_WARNINGS即可解决此问题

6.ctype相关函数

isaplpha();//是不是字母
isdigit();//
isalnum();
islower();
isupper();
tolower();
toupper();

7.常用算法

auto bounds = equal_range(nums.begin(), nums.end(), target);
    if (bounds.first == bounds.second)
        return {-1, -1}
//寻找元素第一次出现与最后一次出现的后一位





 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
 

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