C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 28. Удаление элементов из середины списка / Уроки C++ .NET / Visual C++ .NET

Visual C++.NET
Урок 28. Удаление элементов из середины списка

На уроке

Вариант из примера прошлого урока:

void CtestmfcDoc::OnListDeleteitem()
{
  // TODO: Add your command handler code here
  CDeleteDlg d;
  d.DoModal();

  //Новый вариант.
  CMyClass *p;
  POSITION pos = m_list.GetHeadPosition();
  while(pos!=NULL)
  {
    //Берем очередной элемент.
    p = (CMyClass *)m_list.GetNext(pos);
    //Если нашли.
    if(p->m_Data1==d.m_Data1){
      m_list.RemoveAt(pos);
    }
  }
}

Улучшенный вариант:

CShortcut * CUserShortcuts::DeleteShortcut(CString sName)
{
  CShortcut * res = NULL; //результат.
  if(m_listShortcut.IsEmpty()){
    return res;
  }
  POSITION pos = m_listShortcut.GetHeadPosition();
  while(pos!=NULL){
    res = (CShortcut *)m_listShortcut.GetAt(pos);
    //Если нашли.
    if(res->GetName()==sName){
      //То удаляем из списка.
      m_listShortcut.RemoveAt(pos);
      //И возвращаем удаленный узел.
      return res; 
    }
    //Берем очередной узел.
    m_listShortcut.GetNext(pos);
  };
  return NULL;
}