std::map 获取 lower_bound 的上一个
std::map get previous of lower_bound
我有一个 std::map
作为 :
std::map<unsigned int, char> m_map
{
std::make_pair (0, 'a'),
std::make_pair (5, 'b'),
std::make_pair (10, 'c'),
std::make_pair (15, 'd'),
};
我正在使用 std::map::lower_bound
使迭代器达到下限。
auto lower_bound = m_map.lower_bound(7); // points to (10, 'c')
我想获取前一个元素到lower_bound
。目前我正在遍历整个 std::map
并存储前一个元素。如果达到下限,那么我会打破循环。
我想知道,有没有更聪明的方法让指向前一个元素的指针指向lower_bound
。
std::map
iterators are bidirectional iterators,这意味着您可以对它们使用 --
运算符。
如
auto lower_bound = m_map.lower_bound(7); // points to (10, 'c')
--lower_bound; // Should now point to (5, 'b')
我有一个 std::map
作为 :
std::map<unsigned int, char> m_map
{
std::make_pair (0, 'a'),
std::make_pair (5, 'b'),
std::make_pair (10, 'c'),
std::make_pair (15, 'd'),
};
我正在使用 std::map::lower_bound
使迭代器达到下限。
auto lower_bound = m_map.lower_bound(7); // points to (10, 'c')
我想获取前一个元素到lower_bound
。目前我正在遍历整个 std::map
并存储前一个元素。如果达到下限,那么我会打破循环。
我想知道,有没有更聪明的方法让指向前一个元素的指针指向lower_bound
。
std::map
iterators are bidirectional iterators,这意味着您可以对它们使用 --
运算符。
如
auto lower_bound = m_map.lower_bound(7); // points to (10, 'c')
--lower_bound; // Should now point to (5, 'b')