其实主要就是记录各种stl&string的用法...一老忘主要很容易 今天学了 下周这个时候忘了 又去用稀奇古怪的写法 贼头疼
string
- string倒置
reverse(s.begin(),s.end())
- 使用char构造string
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
string s1 = "11212jsiwijisa";
s = s1.substr(3); //从下标2到最后
s = s1.substr(3, 1); //从2截取1个
- string 保留两位小数输出 使用ostringstream(仿佛回到了初学c++的时候
price *= (100 - discount) * 0.01;
ostringstream oss;
oss << fixed << setprecision(2) << price;
map
- map的kv进行排序 map转入vector进行排序
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是数的原根 可证同余