#include <bits/stdc++.h> using namespace std; vector<int> li1; int main() { /* vector<int> li; li.push_back(x); vector<int> li2(n + 1); vector<vector<int>> li3(n + 1, vector<int>(m + 1)); */ /* set<int> st; set<int,greater<int>> st; 从大到小 set<int,less<int>> st;从小到大 st.insert(x); st.find(x); st.erase(x); st.erase(find(x)); st.begin() st.end() st.rbegin() st.rend() for(auto x:st){} for(auto p=st.begin();p!=st.end();st++){} st.lower_bound(x); st.upper_bound(x); multiset<int> st; st.insert(1); st.insert(1); st.insert(1); st.erase(st.find(1)); printf("%d", st.count(1)); */ /* map<类型1,类型2> mp; 建立类型1的数据到类型2数据的映射关系 mp[x]=y; 指定x可以找到y mp.find(x)==mp.end() 寻找是否存在关于x的映射关系,不存在会与end相同 mp.count(x) 如果不存在映射关系会返回0 mp.erase(x) 擦除关系 mp.clear() 清空 for(auto x:mp){} 遍历所有的二元关系,类型为pair<类型1,类型2> x.first取前面x.second取后面 也可以 for(auto [x,y]:mp) 此时x表示前面的部分,y表示后面的部分 */ }