С++ - язык, который изучается постепенно.ОПЕРАТОРЫ КОЛЛЕКЦИЙ
создание сайта визитки
Студия Web-дизайна, создание, раскрутка сайтов интернет реклама, подача объявлений на доски, продвижение и сопровождение сайтов
Карта сайта | Зарабатывайте с нами  | Сделать заказ
Наши услуги
Справочники
Самоучитель Internet Explorer
PHP и MySQL
Компьютерные сети
Самоучитель о С++
Новости
Новости для PDA
Реклама
Студия WebKuban.Ru - Создание и поддержка сайтов, интернет магазинов Каталог сайтов Всего.RU Интернет-каталог WWW.SABRINA.RU Refo.ru - русские сайты Каталог HeadNet.Ru Интернет-магазин цифровых товаров Каталог Ресурсов Интернет
Реклама
Язык С++
По последним данным, на рынке продается по крайней мере 2 768 942 книги о С++, не говоря уже о всевозможных курсах, обучающих программах, журналах и семинарах с коктейлями.
И все же в этом изобилии наблюдается удручающее однообразие.
Добро пожаловать на сайт студии Web-дизайна "САР"


Материалы книги получены с http://www.itlibitum.ru/

Операторы коллекций

Многие коллекции индексируются одним или несколькими способами и хорошо соответствуют оператору [], однако в нашем обсуждении курсоров и итераторов нигде не выдвигалось требование непременно использовать оператор [] или индексировать коллекцию. Курсор лишь определяет некоторую внутреннюю позицию в коллекции; эта позиция не обязана быть чем-то понятным или представляющим интерес для пользователя. Если убрать из функции Next() аргумент Index&, описанный итератор можно будет с таким же успехом использовать не для массива, а для чего-то совершенно иного.

В большинстве коллекций имеются общие операции. Как и в случае с оператором [], операторы С++ обычно перегружаются для получения более понятного и удобочитаемого кода. Хотя не существует повсеместного стандарта операторов коллекций, приведенный ниже перечень поможет вам начать ваши собственные разработки. Во всех приведенных операторах сохраняется семантика соответствующих операций с числами.

template <class Element>

class Set {

public:

Set(); // Пустое множество

Set(const Set<Element>&); // Дублировать множество

Set(Element*); // Множество с одним исходным элементом

// Бинарные операции и операции отношения (множество, множество)

// (также варианты |=, &=, -=, <, <=)

Set<Element> operator|(const Set<Element>&) const; // Объединение

// множеств

Set<Element> operator&(const Set<Element>&) const; // Пересечение

Set<Element> operator-(const Set<Element>-) const; // Разность

// множеств

bool operator>(const Set<Element>&) const; // Истинно, если this

// является точным надмножеством аргумента

bool operator>=(const Set<Element>&) const; // Истинно, если this

// является надмножеством аргумента

bool operator==(const Set<Element>&) const; // Истинно, если множества

// имеют одинаковое содержимое

// Бинарные операции и операции отношения (множество, элемент*)

// (также варианты |=, -=)

Set<Element> operator|(Element*); // Добавить элемент в this

Set<Element> operator-(Element*); // this минус элемент

bool operator>(const Element*) const; // Истинно, если элемент

// принадлежит множеству, но не является единственным

bool operator>=(const Element*) const; // Истинно, если элемент

// принадлежит множеству

bool operator==(const Element*) const; // Истинно, если элемент

// является единственным элементом множества

};

Существует еще один вариант перегрузки оператора, о котором я вынужден упомянуть. Я так и не привык к операторам << и >> в качестве операторов «поразрядных сдвигов» в поток и из него, но поскольку они прочно внедрились в культуру С++, эту идиому приходится использовать хотя бы как базу для дальнейшихрасширений. Это приводит нас к дополнительному применению << и >> в контексте коллекций и итераторов:

Оператор << может использоваться в итераторах как синоним функции Next().

Оператор >> может использоваться как синоним более длинного оператора Set&

operator|=(Element*) для «сдвига» новых элементов в коллекцию.

В обоих идиомах оператор должен перегружаться в форме внешней функции, поскольку в левой части оператора находится Element*, а не Set. Идиома >> выглядит наиболее естественно для коллекций, сохраняющих исходный порядок вставки (например, списков).

Мы вернемся к этой теме в части 3 при обсуждении гомоморфных иерархий классов.


Назад    Содержание    Далее    



Специальное предложение


Сайт визитка за 90 $
создание, разработка сайта
  • Регистрация доменного имени в зоне .net.ru или .pp.ru (1 год)
  • Хостинг (1 год)
  • Готовый дизайн
  • Поддержка РНР
  • 3 страницы сайта (главная, о фирме, контакты)
  • Регистрация в 256 поисковых системах и каталогах
  • Форма сообщений
заказать создание сайта визитки
Размещение объявлений
Недорого предлагаем разослать ваше рекламное предложение о товарах или услугах на сотни досок объявлений по всему Рунету.
размещение объявлений на электронных досках
Друзья сайта
  • Реклама - каталог ресурсов Реклама - каталог ресурсов - Реклама Карта сайта
  • Просто добавь свой сайт
  • Ипотека, коммерческая и загородная недвижимость, продажа квартир и коттеджей
  • Выставки, выставки России, Выставки Москвы, зарубежные выставки
  • Music singer R&B song
  • Язык С++
    Просматривать полку книг о С++ в книжном магазине ничуть не интереснее, чем литературу по бухгалтерии. В сущности, все книги пересказывают одно и то же и отличаются разве что по весу и количеству цветов в диаграммах и таблицах.
    Copyright студия Web-дизайна САР © 2007
    Используются технологии uCoz