1.<cstdio>

1) freopen("文件名.txt","w",stdout) freopen("文件名.txt","r",stdin)

2.<string>

1)支持  operator + , ==,!=,<,>,<=,>=

2)支持getline读入

3)stoi stol stoll stoul stoull stof stod stuld to_string 

3.<algorithm>

1)random_shuflle 随机排列

2)unique去重,删除连续空格

//删除连续的某个字符,只留下1个
std::string s = "wanna go    to      space?";
    auto end = std::unique(s.begin(), s.end(), [](char l, char r){
        return std::isspace(l) && std::isspace(r) && l == r;
    });
std::sort(v.begin(), v.end()); // 1 1 2 2 3 3 3 4 4 5 5 6 7 
    auto last = std::unique(v.begin(), v.end());
    // v 现在保有 {1 2 3 4 5 6 7 x x x x x x} ,其中 'x' 为不确定
    v.erase(last, v.end()); 

3)vector合并/求交集/求差(并 - 交)

vector<int>a,b,dest;
    a.pb(1);a.pb(2);a.pb(3);a.pb(4);
    b.pb(1);b.pb(3);b.pb(4);
    set_union(a.begin(),a.end(),
                     b.begin(),b.end(),
                     inserter(dest,dest.begin()));
    for(auto t : dest)  cout <<t<<" " << endl;

4) nth_element(first,first+前多少大,end,cmp); O(N)

4.<cmath>

1) fmod(A,B)

5.<set>/ <map>

1) 注意一下set.lower_bound 和 lower_bound(begin,end) .前者更优秀