vector<int> alls; sort(alls.begin(), alls.end()); // 排序 alls.erase(unique(alls.begin(), alls.end()), alls.end()); // 去重 // 二分求出x对应的离散化的值(映射) int find(int x) // 找到第一个大于等于x的位置 { return lower_bound(alls.begin(),alls.end()) - alls.begin(); }