计算机考研复试 233 道
华为机试 108 道
程序员面试金典 83 道
剑指offer 67 道(做了24道)
以上共491道
字符串
-
输入
getline(cin, str) // getline的第三个参数为分界符,可自定义,如‘#’,默认的为Enter。
// getline 取得的字符串不包括换行符。
-
查找
string str = "abcdecfg"; string flag1 = "cd"; //以下6个函数,均可以加第二个参数,表示从指定下标开始查找 //find 和 rfind 是精确匹配,剩下四个函数只要能匹配上flag中任意一个字符既满足条件。 cout<<str.find(flag1, 0)<<endl; // 2,,,表示从下标为0的位置开始从前往后查找 cout<<str.rfind(flag1)<<endl; // 2,,,,,反向查找 cout<<str.rfind(flag1, 2)<<endl; // 2,,,表示从下标为2+len(flag1)-1的位置开始从后往前查找 cout<<str.find_first_of(flag1)<<endl; // 2 cout<<str.find_first_not_of(flag1)<<endl; // 0 cout<<str.find_last_of(flag1)<<endl; // 5 cout<<str.find_last_not_of(flag1)<<endl; // 7 cout<<endl; string flag2 = "c"; cout<<str.find(flag2)<<endl; // 2 cout<<str.rfind(flag2)<<endl; // 5 cout<<str.find_first_of(flag2)<<endl; // 2 cout<<str.find_first_not_of(flag2)<<endl; // 0 cout<<str.find_last_of(flag2)<<endl; // 5 cout<<str.find_last_not_of(flag2)<<endl; // 7 cout<<endl; string flag3 = "h"; //找不到的话返回值是 `-1` 或 `string::npos` cout<<(str.find(flag3)==-1)<<endl; // 1 cout<<(str.rfind(flag3)==string::npos)<<endl; // 1
-
string与int互转
string str ="xxxxxx"; int a = stoi(str); //对应的函数还有 stol()、stod() int a = 123456; // cout<<to_string(a)<<endl;
-
子串截取
str.substr(开始位置,截取长度)
容器
1. 共同函数
-
长度:a.size()
-
定义:vector
a() //不初始化,不申请空间 vector
a(2) //申请两个int空间,初始化为0
2. vector
-
push_back()
- 排序:
sort(num.begin(), num.end()); //从小到大排序 sort(vec.rbegin(), vec.rend()); //从大到小排序 bool cmp(int a,int b){ return a > b; } sort(num.begin(), num.end(), cmp); // 自定义cmp函数实现从大到小排序
-
去重:
num.erase(unique(num.begin(), num.end()), num.end());