Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по C/C++

  Все выпуски  

Уроки по C/C++


Информационный Канал Subscribe.Ru

Уроки по C/C++. Рассылки сайта progs.biz
Рассылка № 31
 
Начало > C++ > Основы C++ > Урок 36

М. Фленов. Программирование на C++ глазами хакера.
М. Фленов. Программирование на C++ глазами хакера
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 36.

C/C++
Урок 36. Получаем элемент списка по его номеру

Наш метод, который будет получать указатель на элемент списка по его номеру, будет называться GetAt. Добавьте его объявление в класс:

class CList
{
public:
    ...
    // Взятие n-го элемента.
    CData * GetAt(int n);
    ...

Реализация у него будет такая:

CData * CList::GetAt(int n)
{
    // Указатель на очередные данные в списке.
    CData * pCurr = m_pFirst;
    // Если список пуст
    // или элемента с таким номером просто нет,
    // то возвращаем NULL.
    if(pCurr == NULL || n>GetCount()-1)
    {
        return NULL;
    }
    // Добираемся до элемента с нужным номером.
    for(int i=0; i<GetCount(); i++)
    {
        if(i==n)
        {
            return pCurr;
        }
        pCurr = pCurr->m_pNext;
    }
    return NULL;
}

Алгоритм тут прост и естественен - мы просто перебираем все элементы, начиная с первого. Как только добираемся до n-го, так и выходим. Перед этой несложной операцией мы убеждаемся, что элемент с таким номером существует вообще (если нет, то просто возвращяем NULL).

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2004 сайт progs.biz
© 2002-2004 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.cpplessons
Отписаться

В избранное