珂朵莉树Split(l)和Split(r+1)的顺序

回复帖子

@ftiasch 2021-05-04 12:10 回复 举报

@uibn 因为你需要保证 split(r + 1)split(l) 返回的迭代器有效。

假设我们先 split(l),再 split(r + 1). 考虑以下情形:

假设 set 里面有一个区间 [l, r'),其中 r + 1 < r'.

那么 split(l) 会返回 [l, r') 的 iterator. 但是后续 split(r + 1) 的时候,会把这个 iterator erase,并创建区间 [l, r + 1)[r + 1, r').

在这之后,split(l) 的迭代器(指向 [l, r') )已经失效了。

反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。