方法1 用upper_bound找到大于x的,然后prev()回退一个迭代器位置就行了 方法2 如果把set逆序,那么lower_bound就能起到查找小于等于x的作用 set<int, greater<int>> s; s.insert(1); s.insert(3); cout << *s.lower_bound(2) << endl; //1