其实主要就是记录各种stl&string的用法…一老忘主要很容易 今天学了 下周这个时候忘了 又去用稀奇古怪的写法 贼头疼
string
- string倒置
reverse(s.begin(),s.end())
- 使用char构造string
1 2
| char a='a',b='0'; string s={a,b};
|
- to_string方法 int转string
s=to_string(1)
- string转int stoi stoll stod etc.
t=stoi(s)
- substr
1 2 3
| string s1 = "11212jsiwijisa"; s = s1.substr(3); s = s1.substr(3, 1);
|
- string 保留两位小数输出 使用ostringstream(仿佛回到了初学c++的时候
1 2 3
| price *= (100 - discount) * 0.01; ostringstream oss; oss << fixed << setprecision(2) << price;
|
map
- map的kv进行排序 map转入vector进行排序
1 2 3 4 5 6 7
| map<int, int> mp1; vector<pair<int, int>> arr1; for (const auto &[k, v] : mp1) { arr1.emplace_back(v, k); } sort(arr1.begin(), arr1.end(), greater<pair<int, int>>());
|
set
- vector构建set
set<int> st(v.begin(),v.end());
其他
- 前缀和一般从1开始比较好 边界不用特判
- 一个数%9是数的原根 可证同余