Главная » Просмотр файлов » Г. Шилтд - Самоучитель C++ (DJVU)

Г. Шилтд - Самоучитель C++ (DJVU) (1114955), страница 67

Файл №1114955 Г. Шилтд - Самоучитель C++ (DJVU) (Г. Шилтд - Самоучитель C++ (DJVU)) 67 страницаГ. Шилтд - Самоучитель C++ (DJVU) (1114955) страница 672019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 67)

Третья форма — это конструктор ассоциативного списка, содержащего диапазон элементов, заданный итераторами начало и конец. Функция сравнения ф сравн, Глава 14. Библиотека стандартных шаблонов если она присутствует, задает порядок сортировки элементов ассоциатив- ного списка. Как правило, для любого объекта, заданного в качестве ключа, должны быть определены конструктор по умолчанию и несколько операторов сравнения. Для класса тар определяются следующие операторы сравнения: 1= ) В табл. 14.4 представлены функции — члены класса тар. В данной таблице тип )Феу (уре — это тип ключа, а )геу ча1ие — тип пары ключ/значение (тип рагг< Кеу, Т>).

Описание з)ве 1уре соип1 (сопз1 кеу 1уре е)г) сопз1; Ьоо! егпрФУ() сопз1; Иега1ог епФФ()! сопз1 Иега1ог епгФ() сопз1; чо)б егазе(нега1ог !); чопФ егазе(Нега(ог начало, Иега1ог конец); зИе Фуре егаве (сопз1 кеу 1уре й Ц ! апосаФог Фуре пеФ а((оса1ог() сопв1; Функция-член ИегаФог Ьед(п(); сопзФ ИегаФог Ьея!и() сопвФ; чоЫ с(еаг(); ра(г<негаФог, ИегаФог> ек)иа! гвпяе(сопвФ кеу 1уре еЦ! ра)г<сопвФ ИегаФог, сопз1 Иега1ог> ециа! гап9е(сопв1 кеу 1уре %Ц сопз1; Иега1ог Ф)пг! (сопзФ Кеу Фуре (Ф)г)! сопв()ФегаФог Ф)пФФ (сопз( кеу 1уре %Ц сопзФ; Таблица 14.4. Функции — члены класса тар Возвращает итератор первого элемента ассо- циативного списка Удаляет все элементы ассоциативного списка Возвращает 1 или О, в зависимости от того, встречается или нет в ассоциативном списке ключ /г Возвращает истину, если вызывающий ассо- циативный список пуст, в противном случае возвращает ложь Возвращает итератор конца ассоциативного списка Возвращает пару итераторов, которые указывают на первый и последний элементы ассоциативного списка, содержащего указанный ключ lт Удаляет элемент, на который указывает ите- ратор 1 Удаляет элементы, заданные между итерато- рами начало и конец Удаляет элементы, соответствующие значению ключа lг Возвращает итератор по заданному ключу к.

Если ключ не обнаружен, возвращает итера- тор конца ассоциативного списка Возвращает распределитель памяти ассоциа- тивного списка 448 Описание Функция-член Иега1ог )пвегФ(йегаФог 1, сопв1 ча(це 1уре бзиачеиие)! 1егпр(аФе<с)авз (пйег> чо!г! Епзегг((пйег начало, (пйег «оиец); рв(г<йегаФог, Ьоо(>(пвег1 (сопв1 ча(це 1уре йзначение); )сеу согпраге (геу„согпр() сопв1; Иега1ог (очгег Ьоппд (сопвФ )сеу Фуре а(г)! сопвФ ИегаФсг (овгег Ьеипд (сопвФ (геу Фуре М) сопвФ; з(*е 1уре гпах в(зе() сопв1; гегегепсе орега1огЦ (сопв1 кеу 1уре (Ф1); гечегве Иега1ог гЬе9(п(); сспзФ гечегве йега1ог гЬея)п() сопвФ; гечегве ИегаФог гепд(); сопвФ„гечегзе Иегазог гепг(() сопв1; вгае 1уре в(ге() сопв1; чоЫ вччар(гпар<Кеу, Т, Сестр, А((осаФог> йабъект); Иега1ог иррег Ьоцпг! (сойвФ кеу Фуре ЙЦ„.

сопзФ„йегазог иррег ЬоиМ (сопв1 Меу 1уре ЙГг) сопз1; чв!це„согпраге ча(це согпр() сопз1; Самоучитель С++ Таблица 14.4 (продолжение) Вставляет параметр значение на место элемента или после элемента, заданного итера- тором 1. Возвращает итератор этого элемента Вставляет последовательность элементов, заданную итераторами начало и конец Вставляет значение в вызывающий ассоциативный список.

Возвращает итератор вставленного элемента. Элемент вставляется только в случае, если такого в ассоциативном списке еще нет. При удачной вставке элемента функция возвращает значение рв(г<йегаФог, Фгце>, в противном случае — рай<Нега!от, !а(зе> Возвращает объект-функцию сравнения клю- чей Возвращает итератор первого элемента ассо- циативного списка, ключ которого равен ипи больше заданного ключа « Возвращает максимальное число элементов, которое можно хранить в ассоциативном списке Возвращает ссылку на элемент, соответствующий ключу !.

Если такого элемента не существует, он вставляется в ассоциативный список Возвращает обратный итератор конца ассо- циативного списка Возвращает обратный итвратор начала ассо- циативного списка Возвращает хранящееся на данный момент в ассоциативном списке число элементов Обменивает элементы из вызывающего ассо- циативного списка с элементами из объекта объект Возвращает итератор первого элемента ассоциативного списка, ключ которого больше заданного ключа « Возвращает объект-функцию сравнения зна- чений Глава 14. Библиотека стандартных шаблонов 449 МапрзайвчсЗ.азз КЕуре, с1еяя улуре> яСтпсС ретв ( Еуребет Кеуре аерзюй ахат; '~' ттет ключа Суреаей уЕуре второй тип; уу тип Значении Ксуре первый т 22 содержит ключ Усуре второй; уу содержит значение // конструкторы ре-т ( ); ралк (сопзлк(.уре йк, сопяс усуре гту) леюр1аТв<оьазз А, сьаяя в> ранг (сопев, в> аобзекз1 Ранее уже говорилось, что значение переменной иервый содержит ключ и значение, а значение переменной второй — значение, соответствующее этому ключу.

Создавать пары ключ/значение можно не только с помощью конструкторов класса ра(г, но и с помощью функции тпаЫе ра!гО, которая создает объекты типа ра!г, используя типы данных в качестве параметров. Функция пса!(е ра!г0 — это родовая функция со следующим прототипом: лввр1аке<о1азз К(уре, с1аяя УЕуре> раз.к<Каре„УЕуре>юаа1св уал.к (сопят К1уре бт, сопя| Муре бу) Как видите, функция возвращает объект типа ра!г, содержащий заданные в качестве параметров функции значения типов К1~ре и И~ре.

Преимушество использования функции та!(е ра!гО состоит в том, что она дает возможность компилятору автоматически распознавать типы предназначенных для хранения объектов, и вам не нужно указывать их явно. В следующей программе на примере ассоциативного списка, предназначен- ного для хранения десяти пар ключ/значение, иллюстрируются основы ис- пользования ассоциативных списков. Ключом здесь является символ, а зна- чением — целое. Пары ключ/значение хранятся следующим образом: А в С О 1 2 Поскольку пары хранятся именно таким образом, то, когда пользователь на- бирает на клавиатуре ключ (т. е.

одну из букв от А до 3), программа выводит на экран соответствующее этому ключу значение. В ассоциативном списке хранятся пары ключ/значение в виде объектов типа ра(г. Шаблон объекта типа ра1г имеет следующую спецификацию: 4бо Самоучитель //Иллюстрация возможностей ассоциативного списка ((1пс1ис?е <1озсгеата> ((1пс1цбе <пар> цз(пя пагпезрасе з(с(; ш( татп (( ?вар<слег, гпз> лл 1п?. 1 размез(ение пар в ассоциативном списке гог (1=0; 1<10; ьч-.т( ( ?а.

1пзеГ?. (ратг<снаг, 1пе>('А' -~ 1, 1( ( сваг с?Н сопе « "Введите ключ: "т сз тт »с?т; мр<спаг, афпг>:: 1сегасог р; поиск значении по заданному клюв р =-?л. йвпс((сЬ); ?Г (р !=пг.епс?(( ? соас « р->весов<(( е1зе соцс « "Такого ключа в ассоциативном списке Нет~в"( геецгп 0; Обратите внимание на использование класса-шаблона ра1г для образования пар ключ/значение. Типы данных, указанные в классе-шаблоне ра!г, должны соответствовать типам данных, хранящимся в ассоциативном списке. После того как ассоциативный список инициализирован парами ключ/значение, найти нужное значение по заданному ключу можно с помощью функции ЙпйО. Функция йвй() возврагцает итератор соответствующего ключу элемента или итератор конца ассоциативного списка, если указанный ключ не найден. Когда соответствующее ключу значение найдено, оно сохраняется в качестве второго члена класса-шаблона ра(г.

2. В предыдущем примере типы пар ключ/значение были указаны явно в конструкции ра)г<еЬаг, шт>. Хотя такой подход совершенно правилен, часто проще использовать функцию пийв уа)гО, которая создает пары объектов на основе типов данных своих параметров. ((1пс1цс(е <1озггеал> ((1пс1цс?е <вар> цз(пя патвезрасе зМ; шаблонов 451 Библиотека Глава стандартных )пг гпа1п ( ) вар<с)тат, цго> дп тп~ // размещение пар в ассоциативном списке гог(1=о! 1<10; 1++) ( Пт.(ПВЕГт (вьа)се раъг(С))аГ) ('А' Е ), 1) ); ) сваг сп; сопв « "Введите ключ: ") съп » с)т; вар<сваг, 1пг>;: ъвегагог р; поиск значения по заданноиу ключу р =.

ю. Еьпс1(с)т); ъй (р ! — т. епс) () соцс « р->весопо; е1ве сонг « "Такого ключа в ассоциативном списке нет~п"„ ге(игп 0; Данный пример отличается от предыдущего только строкой т.ъпвегТ(ви)се раьг(спад) ('А' + 1, 1) ); В данном случае, чтобы в операции сложения 'А' + 1 не допустить автоматического преобразования в тип пй, используется приведение к типу с))аг. Во всем остальном процесс определения типов объектов выполняется автоматически. 3, Так же как и вдругих контейнерах, в ассоциативных списках можно хранить создаваемые вами типы данных. Например, в представленной ниже программе создается ассоциативный список для хранения слов с соответствующими словам антонимами.

Характеристики

Тип файла
DJVU-файл
Размер
8,22 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее