1.map容器转vector保存并通过value值排序方法
map<char, int> card;
for (int i = 0; i < s.size(); i++)
{
card[s[i]]++;
}
vector<pair<char, int> > vmap;
for (map<char, int>::iterator it = card.begin(); it != card.end(); it++)
{
vmap.push_back(make_pair(it->first, it->second));
}
bool cmp(const pair<char, int>& p1, const pair<char, int>& p2)
{
return p1.second > p2.second; //升序排列,p1的value大于p2,则输出p1在前。
}
map以pair保存,make_pair构建,存入vector,使用sort函数,进行内部的排序。
2.不是素数检查
//不是素数检查 ,是素数,返回true,不是素数,返回false
bool P(int n) {
for (int i = 2; i <= sqrt(n); i++)
if (n % i == 0)
return false;
return true;
}
3.n个数最大公约数和最小公倍数
//最大公约数
int gys(int a, int b)
{
while (b)
{
int r = a % b;
a = b;
b = r;
}
return a;
}
int gbs(int a, int b)
{
return a / gys(a, b) * b;
}