Я (вперед) итерации по std :: map и хотел бы найти, если итератор указывает на второй последний элемент. Кажется, я не могу найти, как это сделать.Проверьте, является ли итератор std :: map указывает на второй последний элемент
У меня есть:
bool
isSecondLastFile(const TDateFileInfoMap::const_iterator &tsFile)
{
TDateFileInfoMap::reverse_iterator secondLastIt = mFileInfoMap.rbegin() + 1;
return (tsFile == secondLastIt);
}
Где TDateFileInfoMap
находится станд :: Карта
Я получаю:
error: no match for ‘operator==’ in ‘tsFile == secondLastIt’
/usr/lib/gcc/i686-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_tree.h:287: note: candidates are: bool std::_Rb_tree_const_iterator<_Tp>::operator==(const std::_Rb_tree_const_iterator<_Tp>&) const [with _Tp = std::pair<const long int, TFileInfo>]
Означает ли это, я не могу сравнить вперед и обратный итератор?
Как определить, если передний итератор указывает на второй последний элемент?
Как насчет 'tsFile + 2 == mFileInfoMap.end()'? – lorro