字符串与数字 互转

参考

  1. #include <sstream>
  2. #include <string>
  3. int x = 1232;
  4. stringstream ss;
  5. ss << x;
  6. string s = ss.str();
  1. int num;
  2. stringstream ss(s);
  3. ss >> num;

C++定义排序规则

相关练习:剑指 Offer 45. 把数组排成最小的数
sort(strs.begin(), strs.end(), [](string& x, string& y){ return x + y < y + x; });

sort(cntVec.begin(), cntVec.end(), cmp);

  1. - lambda,针对比较简单的排序,比如仅对第二位排序
  2. ```cpp
  3. sort(cntVec.begin(), cntVec.end(), [](const pair<string,int>&a, const pair<string,int>&b) {return a.second > b.second;});

输入带空格的字符串

  1. string s;
  2. getline(cin, s);

substr

substr(i,8)从下标i开始的长度为8的子串

sort()从大到小排

参考
sort(a.begin(),a.end(),greater<int>())

数组求和

accumulate(height.begin(), height.end(), 0)

从输入中按,分割字符串

例题

  1. #include <iostream>
  2. #include <sstream>
  3. #include <vector>
  4. #include <algorithm>
  5. using namespace std;
  6. int main (){
  7. string s;
  8. vector<string> v;
  9. vector<string>::iterator it;
  10. while(cin>>s){
  11. stringstream ssr(s);
  12. string split;
  13. while(getline(ssr,split,',')) // ,为分割
  14. v.push_back(split);
  15. if(cin.get()=='\n'){
  16. sort(v.begin(),v.end());
  17. for(it=v.begin();it!=v.end();it++){
  18. cout<<*it;
  19. if(it!=v.end()-1) cout<<",";
  20. }
  21. cout<<endl;
  22. v.clear();
  23. }
  24. }
  25. return 0;
  26. }

优先队列用法

参考

文件操作

参考

内置位计数函数

  • 计算二进制表达 x 中 1 的个数
    1. __builtin_popcount(x);