int gcd(int a, int b)
{
return b == 0 ? a : gcd(b, a % b);
}
bool is_odd(int num)
{
return num & 1;
}
if((s.charAt(i ++) & 0xDF) != (s.charAt(j --) & 0xDF)) return false;
int tolower(int c)
{
if ((c >= 'A') && (c <= 'Z'))
return c + ('a' - 'A');
return c;
}
int toupper(int c)
{
if ((c >= 'a') && (c <= 'z'))
return c + ('A' - 'a');
return c;
}
isalnum()
函数声明:int isalnum(int c);
若符合,则返回非零值,不符合则返回0;
int a[11]={0,1,2,13,45,2,33,1,6,78,4};
sort(a,a+11);
bool cmp(int a,int b)
{
return a>b;
}
int a[11]={0,1,2,13,45,2,33,1,6,78,4};
sort(a, a+11, cmp);
sort(a, a+11, [](const int& a, int& b){return a>b});
bool cmp(string a,string b)
{
return a.size() < b.size();
}
string a[4]={"hhhhh","heheheh","xxxxxx","kkkkkk"};
sort(a,a+4,cmp);
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/26b2a4b7d05ecc4639706c9e983b4fdd.png)
bool cmp(const string& s1, const string& s2){
return s1.length()<s2.length();
}
int main(){
string s1 = "zoo";
string s2 = "adidas";
cout << max(s1, s2) << endl;
cout << max(s1, s2, cmp);
return 0;
}
map<string, int> name_score_map;
map<string, int, greater<string> > name_score_map;
struct CmpByKeyLength {
bool operator()(const string& k1, const string& k2) {
return k1.length() < k2.length();
}
};
int main() {
map<string, int, CmpByKeyLength> name_score_map;
name_score_map["LiMin"] = 90;
......
return 0;
}
map<string, int> name_score_map;
name_score_map["LiMin"] = 90;
......
vector<pair<string, int>> vec(name_score_map.begin(), name_score_map.end());
sort(vec.begin(), vec.end(), [](const pair<int, int>& a, const pair<int, int>& b){return a.second < b.second;});
priority_queue<pair<int, int>, vector<pair<int, int>>, less<pair<int, int>> > q;
priority_queue< pair<int,int> > q;
priority_queue< pair<int, int>, vector<pair<int, int>>, greater<pair<int, int> > q;
class cmp{
public:
bool operator()(const pair<int, int>& lhs, const pair<int, int>& rhs) {
return lhs.second > rhs.second;
}
};
int main(){
priority_queue<pair<int, int>, vector<pair<int, int>>, cmp> q;
}
解决“约瑟夫环”问题 题目地址:https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/
解决思路:https://blog.csdn.net/u011500062/article/details/72855826
int pos = 0;
for(int i = 2; i <= n; i++){
pos = (pos + m) % i;
}
return pos;
void permutation(vector<int>& nums,int start,vector<vector<int>>& ans)
{
if(start==nums.size()-1)
{
ans.push_back(nums);
}
else
{
for(int i=start;i<nums.size();i++)
{
swap(nums[i],nums[start]);
permutation(nums,start+1,ans);
swap(nums[i],nums[start]);
}
}
}
bool isSameTree(TreeNode* p, TreeNode* q) {
return (p == q) || ( p != null && q != null && p->val == q->val && isSameTree(p->left, q->left) && isSameTree(p->right, q->right) );
}
int a = 4;
string s = to_string(a);
vevtor<int> vec;
reverse(vec.begin(),vec.end());
int a[6] = {0,1,2,3,4,5};
vector<int> vec(a,a+6);
lower_bound(first, last, val)
upper_bound(first, last, val)
int board[5] = {1,2,3,4,5};
int main(){
sort(board,board+5);
int t1 = lower_bound(board,board+5,3)-board;
int t2 = upper_bound(board,board+5,3)-board;
cout<<t1<<' '<<t2<<endl;
return 0;
}
vector<int> vec(16);
fill(freq.begin(), freq.end(), 4);
template< class BidirIt, class UnaryPredicate > BidirIt stable_partition( BidirIt first, BidirIt last, UnaryPredicate p );
第三个参数P可传入一个仿函数,函数指针,Lambda表达式,这里所示代码为Lambda表达式。
函数的意思是:对传入的区间[first, last)中的每个值进行P(value)判断,如果为真,就放入左边,并且保持稳定。
例子:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
vector<int> array
stable_partition(array.begin(), array.end(), [](int x) {return x&1;} );
string s = " 8s9ajdfd9s ";
s = s.trim();
stoi()
to_string()
vector<int> vec;
...
int sum = accumulate(vec.begin(), vec.end(), 0);