Помогите перевести на STL
От: Кирпа В.А. Украина  
Дата: 08.09.04 07:25
Оценка:
Помогите перевести эту функцию на 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 ;
}
!0xDEAD
Re: Помогите перевести на STL
От: Кирпа В.А. Украина  
Дата: 08.09.04 07:28
Оценка:
Здравствуйте, Кирпа В.А., Вы писали:

Извините но при вводе ошибся

КВА>Помогите перевести эту функцию на STL если

КВА>теперь m_listData будет таким
КВА>
КВА>std::list <CMaskData*> m_listData;
КВА>
!0xDEAD
Re: Помогите перевести на STL
От: Bell Россия  
Дата: 08.09.04 07:38
Оценка: 2 (1)
Здравствуйте, Кирпа В.А., Вы писали:

Например вот так:

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;
   ...
}
Любите книгу — источник знаний (с) М.Горький
Re[2]: Помогите перевести на STL
От: Кирпа В.А. Украина  
Дата: 08.09.04 07:44
Оценка:
Здравствуйте, Bell, Вы писали:

Спасибо попробуем
!0xDEAD
Re: ?омоги?е пе?еве??и на STL
От: Аноним  
Дата: 29.08.09 06:15
Оценка:
[ccode]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.