主要由最近刷L1和L2的天梯赛往年真题得出的小技巧汇总。
1.输入包含空格的字符串:
string a;
getline(cin,a); //这种方法可以录入空格
2.类型转换:(可以通过sscanf,sprintf转换)
char->int: -'0' int->char: +'0';
string->int:int stoi(string str) int->string: string to_string(int i) 同理有stof,atoi(char*->int)
3.find函数用法不要混淆
string str; // string类成员函数:未找到返回string::npos
if (str.find("substr") != string::npos);
set<int> st;
if (st.find(0) != st.end()); //set、map成员函数:未找到返回尾迭代器
vector<int> vc;
if(find(vc.begin(), vc.end(), 0)!=vc.end()); //序列式容器可以通过algorithm库中find函数查找,未找到返回尾迭代器
4.string类的insert()操作
1)string &insert(int p0, const char *s)
功能:在原字符串下标为pos的字符前插入字符串str
返回值:插入字符串后的结果。
(2)string &insert(int p0, const char *s, int n);
功能:在p0位置插入字符串s的前n个字符
返回值:插入字符串后的结果。
5.%02d处理前导0
printf("%03d",a);
占三位,从左往右补0,如果a=34,则输出034,如果a=4,则输出004。
6.不要无脑开long long,很费空间,要去分析数据规模。有时候用int可以AC,用long long直接超时了
本文汇总了从L1和L2天梯赛真题中提炼出的技术要点,包括字符串处理(如`insert()`和`%02d`格式化)、类型转换、`find`函数的正确使用以及合理选择数据类型(如避免无谓的`longlong`使用)。

1060

被折叠的 条评论
为什么被折叠?



