洛谷:P5250:木材仓库


洛谷:P5250:木材仓库

题目

P5250:木材仓库

分析

这道题主要是考验STL中集合(set)的基本操作,特别是其中的lower_bound,以及迭代子的操作。

lower_bound

lower_bound是C++ STL中的一个重要函数,它用于在有序容器(如set)中查找第一个大于或等于指定值的元素。但需要特别注意的是,它不是返回一个值,而是返回这个元素的迭代子(iterator,可以理解为一个指针,并进而可以通过*it来获得元素的值)。

迭代子的操作

既然返回的迭代子是一个指针,就可以对它进行解引用(*it)操作以及常规的++/--操作。

在代码中,我们还看到两种删除元素的方法。一种是直接删除迭代子,于是就直接删除了这个元素;另一种是通过值来删除,这时还会进行一次查找,会稍微慢一些。这两种方式是等效的。不过需要特别注意,用迭代子删除元素虽然快,但可能有副作用,特别是在迭代子有了变化的时候,所以用的时候要特别小心。

答案

Solution

思考

(略)

上一篇 下一篇