如果你使用的是线段树和 std::set 查询前驱后继的做法,请立即弃用 std::set,前驱后继可以改用单点修改区间查询线段树维护最值平替。
std::set
虽然说线段树和 std::set 的操作理论复杂度都是单 log\loglog 但是常数可能会超出你的想象。