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

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

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

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

Списки Класс 1ь1 поддерживает двунаправленный линейный список. В отличии от вектора, в котором реализован произвольный доступ, к элементам списка доступ может быль только последовательным. Поскольку списки являются двунаправленными, доступ к элементам списка возможен с обеих его сторон. Ниже представлена спецификация шаблона для класса 1Ы: геар1аге<с1аве Т, с1аяя А11осаяог = а11осагог~Т>>с1аве 11яя Здесь Т вЂ” это тип данных, предназначенных для хранения в списке, а ключевое слово АИосагог задает распределитель памяти, который по умолчанию является стандартным распределителем памяти.

В классе 1Ы определены следующие конструкторы: ехр11сьс 11вЕ(соовг А11осасог яа АХ1осагог()) ехр11сте 11ве (аква г)(ре число, сояяс т ааначааве = тО, сояяе А11осасог ва = А11осагог()); 1гвг(сопег 11яс~т, М1осагог>йо((веге); геар1аге<с1аве 1а1гег>1гег(1отгег начало, тптгаг гонец, сосяя А11осаяог йьа = А11осаеог() ) ' Первая форма представляет собой конструктор пустого списка.

Вторая форма — конструктор списка, число элементов которого — это число, а каждый элемент равен значению значение, которое может быть значением по умолчанию. Третья форма конструктора предназначена для списка из одинаковых элементов, каждый из которых — это обьектн.

Четвертая форма — это конструктор списка, содержащего диапазон элементов, заданный итераторами начало и конец. Самоучитель Сч-ч- 436 Для класса )Ы определяются следующие операторы сравнения: Таблица т4.3. Функции — члены класса Иа( Функция-член Описание Присваивает списку последовательность, оп- ределенную итераторами начало и конец 1епт р! а1е(с! авв 1п!1ег> чоЫ авв1яп(!пйег начало, 1пиег конец); 1егпр1а1е<с!ааа 81ве, с!авв Т> чоЫ авв1яп (81ае число, сопв1 Т йэначение - Т()); Присваивает списку число элементов, причем значение каждого элемента равно параметру эначание Возвращает ссылку на последний элемент списка гегегепсе Ьаси(); сопв1 ге(агепсе Ьаск() сопв1; Возвращает итератор первого элемента спи- ска нега1ог Ье о1п () ! сопв1 Иегаеог Ьея!п() сопв1; Удаляет все элементы списка чо1ггЗ с1еат(); Ьоо) еп1р1у() сопв1; Возвращает истину, если вызывающий список пуст, в противном случае возвращает ложь Возвращает итератор конца списка Ьтега1ог еп!![)! сопв1 Иега1ог ап!!() сопв1; Удаляет элемент, на который указывает ите- ратор /.

Возвращает итератор элемента, кото- рый расположен следующим за удаленным нега1ог агаве(Иега1ог (); Негагог егаве(нега1ог начало, 11ега1ог «онац); Удаляет элементы, заданные между итерато- рами начало и конец. Возвращает итератор элемента, который расположен следующим за последним удаленным Возвращает ссылку на первый элемент списка ге1егепсе (гоп1(); сопв1 гегегепсе ггоп1() сопв1; апоса1ог 1уре яе1 аноса1ог() сопв1; Возвращает распределитель памяти списка В табл. 14.3 представлены функции — члены класса))в(.

Размешать элементы в конце списка можно с помощью функции раз)! Ьас(10 (как и в случае с вектором), в начале — с помощью функции рм)! (гоя1(), а в середине — с помощью функции!пзег((). Для соединения (3от) двух списков нужна функция вр))сеО, а для слияния (тлегяе) — функция 1ветееО.

Для любого типа данных, которые вы собираетесь хранить в списке, должен быть определен конструктор по умолчанию. Кроме этого, необходимо определить различные операторы сравнения. К моменту написания этой книги точные требования к объектам, предназначенным для хранения в списке, у разных компиляторов были разными, поэтому перед использованием списка тщательно изучите техническую документацию на ваш компилятор. Глава 14.

Библиотека стандартных шаблонов 437 Функция-член Описание Вставляет параметр значение перед элемен- том, заданным итератором 1. Возвращает ите- ратор элемента Вставляет число копий параметра значение перед элементом, заданным итератором ! Вставляет последовательность, определенную между итераторами начало и конец, перед элементом, заданным итератором 1 Возвращает максимальное число элементов, которое может храниться в списке Выполняет слияние упорядоченного списка, хранящегося в объекте объект, с вызывающим упорядоченным списком.

Результат упорядочивается. После слияния список, хранящийся в объекте объект становится пустым. Во второй форме для определения того, является ли значение одного элемента меньшим, чем значение другого, может задаваться функция сравнения ф сравн чо!б рор Ьаск()! чоЫ рср 1гоп1()! Удаляет последний элемент списка Удаляет первый элемент списка Добавляет в конец списка элемент, значение которого равно параметру значение Добавляет в начало списка элемент, значение которого равно параметру значение Возвращает обратный итератор конца списка Удаляет из списка элементы, значения кото- рых равны параметру значение Удаляет из списка значения, для которых ис- тинно значение унарного предиката пред Возвращает обратный итератор начала списка Изменяет размер списка в соответствии с параметром число.

Если при этом список удлиняется, то добавляемые в конец списка элементы получают значение, заданное параметром значение Выполняет реверс (т. е. реализует обратный порядок расположения элементов) вызываю- щего списка чоЫ гечегве()1 НегаЬ>г 1пвег1(11ега1ог /, сопв1 Т йзиаЧЕНие = Т())1 чо!д 1пвег1(11ега1ог ц в!зе 1уре число, сопв1 Т йзначение); 1еп!р!а1е<о1авв 1лиег> чо1б 1пвег1(!1ега1ог /, !пнег начало, 1п11ег конец); в!зе 1уре !пах в1ве() сопв1; чоЫ тегяе(нв1<Т, А11оса1ог> йебъеКГ); 1е!пр1а1е<с1ввв Сотпр> чо1б !пег9е(!1в1<Т, А1!оса1ог> йобъект, Сотар ф„срази); чоЫ рцвЬ„Ьаск(сопв1 Т йзначение); чоЫ рцвп 1гоп1(сопв1 Т й значение); гечегве 11ега1ог гЬеп(п(); сопв1 гечегве 11ега1ог гЬея1п[) сопв1; чоЫ гезпОче(сспв1 Т йзначение); 1еп1р1а1е<с!авв ()пРгеб> чоЫ ге1поче 11(УпРгед пред); гечегве Нега1ог гепх!(); сопв1 гечегве Нега1ог говд() сопв1; чо1с3 гев(зе(в(ае 1уре число, Т значение = Т()); Таблица !4.

3(продолжение) Функция-член Описание Возвращает хранящееся на данный момент в списке число элементов в(ав Фуре в(ае() сопв1; Сортирует список. Во второй форме для определения того, является ли значение одного элемента меньшим, чем значение другого, может задаваться функция сравнения ф сравн Вставляет содержимое объекта объект в вы- зывающий список. Место вставки определяет- ся итератором Й После выполнения операции объект становится пустым Удаляет элемент, на который указывает итератор элемент, из списка, хранящегося в объекте объект, и сохраняет его в вызывающем списке.

Место вставки определяется итератором 1 Удаляет диапазон элементов, обозначенный итераторами начала и конец, из списка, хранящегося в объекте объект, и сохраняет его в вызывающем списке. Место вставки определяется итератором / Обменивает элементы из вызывающего спи- ска с элементами из объекта объект Удаляет из вызывающего списка парные эле- менты, Во второй форме для выяснения уни- кальности элементов используется предикат пред ~)яД$р !.

Ниже представлен пример простого списка. тпь патп () 11я1<сйаг> 1зъ; // создание пустого списка тпс год(1=-ор 1<10; 1 -~) 1ят,роя)з )зас)ь( 'А' ь 1); сои « "Размер —.- " « 1я1. ятге () « епб1; уо!б аогФ(); 1егпр1а1е<с(авв Сотар> чо1б вог1 Согпр ф сравн); чо(б эрнов(11егаФог /, Пв1<Т, АПосаФог> Йобъвкт); чоЫ врнсе(11егаФог 1, Пв1<Т, АносаФог> Йобъект, Иега1ог влемект); чоЫ врнсе(11егаФог ), Пв1<Т, АносаФог> Йобъект, Иега1ог начало, ИегаФог конец); чоЫ вччар(нв1<Т, Аноса1ог> Й объект)," чо1б в и (осе () 1 Фегпр1а1е<с1авв В1пРгеб> чоЫ цп(яие(В1пргеб пред); Осноянь*е операции списка 41пс1ис)е <1оя1кеата> ()1ПС1ПГ)Е <11яГ> цятпо пажеярасе ясб; Самоучитель С++ Таблица 14.

З(продолжение) Глава 14. Библиотека стандартных шаблонов 11яс<сЬат>::1тепасог р; сон( « "Содержимое: "; иЬ11е (! 1яс. елбарсу () ) р = 1яС.Ьед1п(); сон( « "р; 1яС.рор йгопс(); те(итп 0; После выполнения программы на экране появится следующее: Размер = 10 Содержимое: тм>С()еГбк1д В этой программе создается список символов. Сначала создается пустой список.

Затем туда помещается десять символов (буквы от А до Л включительно). Эта операция выполняется с помощью функции рпяЬ ЬасЦ), которая помещает каждое следующее значение в конец существующего списка. Далее размер списка выводится на экран. После этого организуется вывод на экран содержимого списка, для чего каждый раз последовательно извлекают, выводят на экран и удаляют очередной первый элемент списка.

Этот процесс продолжается, пока список не опустеет. 2. В предыдущем примере, пройдя список от начала до конца, мы его опустошили. Это, конечно, не обязательно. Ниже представлена переработанная версия программы. ((1пс1ис(е <1оясгеап~> ()1пс1оое <11яс> пяупд папеярасе яЫ; 1пс п~а1п() 11яс<сЬаг> 1яя; Ьзя йок(1=01 1<10; 1++) 1яс.рпяЬ ЬасК('й' + 1) г сопя « "Размер = " « 1яь.я1яе () « епй1; 11яс<сЬаг>:."1сегатог р = 1яС.Ьеогп(); сопя « "Содержимое: м)т11е(р 1= 1яс.епс1() ) ( сопя « *р~ р+-~-; Самоучитель С++ тетитп О; В данной программе итератор р инициализируется таким образом, чтобы он указывал на начало списка, Затем при каждом проходе цикла итератор р инкрементнруется,что заставляет его указывать на следующий элемент списка.

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

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

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

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