C++ 基础技巧
1 vector
去重
//unique使用示例
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<int> v{3,4,5,1,2,5,3};
sort(v.begin(), v.end());
// 去重
vector<int>::iterator pos = unique(v.begin(), v.end());
v.erase(pos, v.end());
for (int i = 0; i < v.size(); i++)
{
cout << v[i] << ' ';
}
cout << endl;
return 0;
}
set去重
#include <iostream>
#include <set>
#include <vector>
using namespace std;
int main() {
vector<int> v{3,4,5,1,2,5,3};
// set 有序且不允许重复
set<int> unique_set(v.begin(), v.end());
v.assign(unique_set.begin(), unique_set.end());
for (int i = 0; i < v.size(); i++)
{
cout << v[i] << ' ';
}
cout << endl;
return 0;
}
2 字符/数字处理
字符判断
// 1 手动
if (x >= 'a' && x <= 'z') ...
if (x >= 'A' && x <= 'Z') ...
// 2 stl库函数
if (std::isalpha(x)) ... // 不区分大小写
if (std::isupper(x)) ...
if (std::islower(x)) ...
if (std::isalnum(x)) ...
数字判断
// 1 手动
if (x >= '0' && x <= '9') ...
// 2 stl库函数
if (isdigit(x)) ...
大小写转换
// stl库函数
auto ch = toupper(c);
auto ch2 = tolower(c);