Преиму­щества использования концепции пространства имен, как мы обсуждали в разделе 1.1, заключаются в том, что имена наподобие vector не «загрязня­ют глобальное пространство имен». Иными словами, мы вправе использо­вать слово vector на глобальном уровне для любой другой цели. Если мы поступим так, то при необходимости разрешить неоднозначность напишем ■..vector для глобальной версии и stdv.vector - для версии STL.

Два популярных компилятора C++

Как Visual C++ 5.0 (VC5), так и Borland C++ 5.2 (ВС5) поддерживают пространства имен. STL полностью интегрирована в их библиотеки, так что не требуется никаких специальных действий, чтобы начать ее исполь­зование. Многие используют эти компиляторы из интегрированной сре­ды разработки, с помощью которой возможно редактировать программ­ные файлы, компилировать их и т. д. Вместо этого мы будем компилировать и компоновать программы из командной строки с помо­щью команды с/ или Ъсс32.

Для этого в командную строку PATH-файла autoexec.bat должен быть вставлен путь

с:\progra~l\devstudio\vc\bin или

с:\progra~l\borland\cbuilder\bin

Для работы с VC5 необходимо также ввести команду

vcvars32

чтобы указать компилятору, где следует искать включаемые файлы и библиотеки.

Версии STL

Изначальная версия STL от компании Hewlett-Packard составила основу зна­чительной части проекта стандарта C++. Эта версия доступна в сети Internet и может быть бесплатно использована и модифицирована при соблюдении не­строгих условий, указанных в следующем уведомлении о копирайте:

Версия STL, включенная в проект стандарта C++, отличается от изна­чальной (которую мы будем называть HP STL) количеством и именами заголовков. Вместо 48 файлов в HP STL в проекте стандарта C++ ис­пользуется только 13 (см. табл.).

Знакомство с STL

Заголовки HP STL                           Стандартная STL

algo.h                    algobase.h              bool.h                   algorithm

bvector.h               defalloc.h               deque.h                 deque

faralloc.h               fdeque.h                 flist.h                 functional

fmap.h                   fmultmap.h            fmultset.h             iterator

fset.h                    function.h              hdeque.h               list

heap.h                    hlist.h                   hmap.h                 map


<< назад вперед >>