获取最接近key的std::container::迭代器

Get closest std::container::iterator to key

本文关键字:container 迭代器 std 最接近 key 获取      更新时间:2023-10-16

我一直在想,是否有可能根据一个可能存在也可能不存在的起始键来迭代映射的一部分。如果我有一个充满位置键的地图,我想说,

"返回一个迭代器,如果_Key不存在,则返回_Key之前最近的迭代器"

我可以使用它来emplace_hint一个新值,或者即使搜索键不存在,也可以循环遍历特定范围的位置。这种功能在某种程度上对我们来说容易获得吗?

使用lower_bound然后递减迭代器,在检查它不指向begin迭代器之后,正如Andre Kostur所说。它返回一个迭代器,该迭代器指向容器中键值不位于k之前的第一个元素(即,它要么等于k,要么在k之后)。复杂度O(log n).