在地图(模板)的上下文中,用于以下用法
auto begin = m_map.find(keyBegin);
auto end = m_map.find(keyEnd);
auto p = equal_range(begin,end,val);
if( !
(
p.first == p.second == m_map.end()
)
)
{
//do something
}
keyBegin
和的类型keyEnd
是无符号整数。
我收到以下编译错误:
error: invalid operands to binary expression
('int' and 'iterator' (aka '__map_iterator<__tree_iterator<std::__1::
__value_type<unsigned int, char>, std::__1::__tree_node<std::__1::__value_type
<unsigned int, char>,
void *> *, long> >'))
p.first == p.second == m_map.end()
有人可以指出这个错误的原因吗?我的理解是,std::equal_range<> 返回的 std::pair<> 分别具有 First 和 second 类型的 ForwardIterator 成员。