我试图使自己熟悉C++中的映射,并且还试图理解可以在其上使用的一些基本操作。但是,我不了解的仅有两个是lower_bound()upper_bound()。我已经多次查询了他们,但不了解他们在做什么。有人可以澄清一下吗?

最佳答案

下限和上限可能更容易理解为equal_range
equal_range返回一对迭代器,当将其视为半开间隔时,它们是与传递的键等效的值(在<下)。

一旦掌握了这一点,lower_bound将返回equal_range的第一个“开始”迭代器,upper_bound返回equal_range的最后一个“结束时一个”迭代器。

直接指定它们会导致您很尴尬的阅读,这可能会让您感到困惑:“第一个元素不少于”等。在他们的正确思维中,没有人以这种方式思考它们,除非在狭窄的情况下。

关于c++ - map::lower_bound()和map::upper_bound在C++中如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52434813/

10-13 00:57