13.01.2015 Views

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

59<br />

else ShowMessage ("Такой член уже есть");<br />

}<br />

}<br />

AnsiString Process (vTree *node) {<br />

static AnsiString result;<br />

result += AnsiString (node–>data) + ' ';<br />

return result;<br />

}<br />

AnsiString InOrder (vTree *node) {<br />

AnsiString result;<br />

If (node != 0) {<br />

InOrder(node–>left);<br />

result = Process (node);<br />

InOrder (node–>right);<br />

}<br />

return result;<br />

}<br />

Стандарт<strong>на</strong>я библиотека STL<br />

Библиотека STL (Standard Templates Library) представляет <strong>на</strong>бор шаблонов<br />

классов <strong>С++</strong>, включающий контейнеры, итераторы, аллокаторы и алгоритмы,<br />

в пространстве имен std. Контейнеры (container) служат классами,<br />

организующими хранение объектов. Неупорядоченные контейнеры представляют<br />

vector, list, deque. К упорядоченным контейнерам относятся set,<br />

map, hash-set, hash-map и их разновидности. Итераторами (iterator) <strong>на</strong>зывают<br />

средства перемещения по объектам контейнеров. Обычно эту роль играют<br />

указатели, поддерживающие итерацию. Итераторы бывают прямыми и<br />

обратными, константными и неконстантными, изменяющими содержимое<br />

контейнера. Низкоуровневые функции распределения памяти контейнеров<br />

<strong>на</strong>зывают аллокаторами (allocator). С их помощью все члены STL автоматически<br />

выделяют и освобождают память, не требуя от программиста использования<br />

операторов new и delete. Для манипулирования данными в контейнерах<br />

служат алгоритмы (algorithm). Обычно <strong>на</strong> них возлагаются стандартные<br />

операции сортировки, поиска, сравнения, перестановки и т.п.<br />

Контейнер vector, описанный в файле заголовка является ди<strong>на</strong>мическим<br />

массивом переменного размера. Подобно стеку, он обеспечивает<br />

добавление объектов в конец функцией push_back и удаление их оттуда<br />

функцией pop_back. Кроме того, в нем реализова<strong>на</strong> вставка объектов в про-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!