Помогите перевести эту функцию на STL если
теперь m_listData будет таким
std::list <CMaskData*> CMaskData*;
извините но плохо понимаю reverse_iterator
int MyEdit::GetPreviousInputLocation(int nSelectionStart)
{
int nNextInputLocation = nSelectionStart;
if (nNextInputLocation < 0)
nNextInputLocation = 0 ;
int nInitialInputLocation = nNextInputLocation ;
CMaskData* pobjData;
for ( POSITION pos = m_listData.FindIndex(nNextInputLocation) ; pos ; nNextInputLocation-- )
{
pobjData = m_listData.GetPrev (pos) ;
if (pobjData->IsInputData())
{
if (nInitialInputLocation != nNextInputLocation)
{
nNextInputLocation++;
}
break ;
}
}
if ( nNextInputLocation < 0 )
return GetNextInputLocation (nSelectionStart) ;
return nNextInputLocation ;
}
Здравствуйте, Кирпа В.А., Вы писали:
Извините но при вводе ошибся
КВА>Помогите перевести эту функцию на STL если
КВА>теперь m_listData будет таким
КВА>КВА>std::list <CMaskData*> m_listData;
КВА>
Здравствуйте, Кирпа В.А., Вы писали:
Например вот так:
std::list <CMaskData*>::reverse_iterator pos = m_listData.rbegin(), pos_end = m_listData.rend();
std::advance(pos, listData.size() - nNextInputLocation - 1);
for(; pos != pos_end; ++pos)
{
pobjData = *pos;
...
}