刷OJ时C++常用函数

1.std::map的相关操作

map<int,int> m;
m.insert(pair<int,int>(1,2))//或者
m[1]=2;
im.count(key);//用来判断是否含有key元素
//遍历
for(map<char,int>::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());//实现字符串逆序

s.resize(n,' ') 改变s的大小,变短截断,变长用第二个参数补充

4.std::vector相关操作

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


vector<int>::iterator iter = unique(ver.begin(),ver.end()); //去重
ver.erase(iter,ver.end());

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}
//寻找元素第一次出现与最后一次出现的后一位
 

8.std::set操作

	set<int> set1{ 1,2,3,4,5,6 };
	set<int> set2{ 4,5,6,7,8,9 };
	set<int> result;
	std::set_difference(set2.begin(), set2.end(), set1.begin(), set1.end(), std::inserter(result, result.begin()));//求差集

9.std::priority_deque

std::prority_deque<int> xxx;//默认是从大到小排序的
std::prority_deque<int,greater<int>> xxx;//从小到大排序


struct compare
{
    bool operator()(pair<int, int> pair1, pair<int, int> pair2)
    {
        return pair1.second > pair2.second;
    }
};
 priority_queue<pair<int, int>,vector<pair<int,int>>, compare> count_queue;;//按照cmp指定的计算方式排序 ,同时需要指定底层容器

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值