6. Шаблоны функций и классов. Библиотека стандартных шаблонов (STL) (Семинары), страница 2
Описание файла
Файл "6. Шаблоны функций и классов. Библиотека стандартных шаблонов (STL)" внутри архива находится в папке "Семинары". PDF-файл из архива "Семинары", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
ВариантСоздать шаблонную функцию поиска в STL-контейнерах, параметры шаблона – типитератора (итераторы в параметрах функции указывают на начало и конец контейнера) итип искомой величины. Инстанцировать для массива строк (где строка – это свой класс,изготовленный из vector<char> с переопределенными операциями необходимыми дляработы функции поиска, в частности, оператор проверки на равенство).4. ВариантСоздать шаблонную функцию случайного (rand) перемешивания элементов в STLконтейнерах типа vector, параметр шаблонной функции передается в параметры шаблонаvector, ссылка на который является аргументом этой функции.
Инстанцировать длямассива строк (где строка – это свой класс, изготовленный из vector<char>).5. ВариантСоздать свою функцию случайного (rand) перемешивания для STL контейнеров типаlist, параметр шаблонной функции передается в параметры шаблона list, ссылка накоторый является аргументом этой функции.
Инстанцировать для списка из строк (гдестроки – это свой класс, изготовленный из vector<char>).6. ВариантСоздать свою шаблонную функцию обращения (reverse) для STL-контейнеров типа listи vector. Инстанцировать для обоих контейнеров, содержащих строки (где строка – этосвой класс, изготовленный из vector<char>).7.
ВариантСоздать свою шаблонную функцию, убирающую повторяющиеся значения вSTL-контейнерах типа vector, list, deque. Инстанцировать для контейнера, содержащегостроки (где строка – это свой класс, изготовленный из vector<char> спереопределенными операциями необходимыми для работы функции удаления, вчастности, оператор сравнения на равенство).8. ВариантСоздать шаблонную очередь mydeque с использованием STL-контейнера vector(например, из двух векторов сделать одну очередь, так, что вставка в начало очереди – этовставка в конец первого вектора, а вставка в конец очереди – вставка в конец второговектора). Определить в нем свои функции вставки в начало и в конец.
Инстанцироватьочередь для вещественных чисел.9. Вариант07.11.20116Кафедра Компьютерных методов физики: программирование, первый курс, второй семестрСоздать шаблонную очередь mydeque с использованием STL-контейнера vector(например из двух векторов сделать одну очередь, так, что вставка в начало очереди – этовставка в конец первого вектора, а вставка в конец очереди – вставка в конец второговектора). Определить в нем свои функции вставки в начало и в конец.Инстанцировать для своего класса, представляющего строку, изготовленную изvector<char>.10.
ВариантСоздать шаблонную очередь mydeque с использованием стандартного STL-контейнераvector, таким образом, чтобы добавление в конец и в начало занимало одинаковоеколичество времени (например, при создании вектора выделяется память с запасом,содержимое вектора хранится в середине массива, добавление в начало очереди это записьв свободные ячейки массива, при исчерпании свободных ячеек память реаллоцируется).Определить в нем свои функции вставки в начало и в конец. Инстанцировать очередь длявещественных чисел.11.
ВариантСоздать шаблонную очередь mydeque с использованием STL-контейнера vector, такимобразом, чтобы добавление в конец и в начало занимало одинаковое количество времени(например при создании вектора выделяется память с запасом, содержимое векторахраниться в середине массива, добавление в начало очереди это запись в свободныеячейки массива, при исчерпании свободных ячеек память реаллоцируется). Определить внем свои функции вставки в начало и в конец. Инстанцировать для своего класса,представляющего строку, изготовленную из vector<char>.12. ВариантСоздать шаблонную очередь mydeque с использованием STL-контейнера vector(например, из двух векторов сделать одну очередь, таким образом, что вставка в началоочереди – это вставка в конец первого вектора, а вставка в конец очереди – вставка вконец второго вектора).
Определить в нем свои функции вставки в начало и в конец.Инстанцировать очередь для комплексных чисел.13. ВариантСоздать шаблонную очередь mydeque с использованием STL-контейнера vector, такчтобы добавление в конец и в начало занимало одинаковое количество времени(например, при создании вектора выделяется память с запасом, содержимое векторахранится в середине массива, добавление в начало очереди – это запись в свободныеячейки массива, при исчерпании свободных ячеек память реаллоцируется). Определить вэтой шаблонной очереди свои функции вставки и удаления в начало и в конец.Инстанцировать очередь для комплексных чисел.14.
ВариантСоздать шаблонный контейнер ключей myset из отсортированного STL-контейнераvector. Определить в нем свою функцию поиска по значению и вставки (с учетом того,что ключи должны быть уникальны, и вставка должна происходить таким образом, чтобыконтейнер оставался отсортированным). Инстанцировать для вещественных чисел.15. ВариантСоздать шаблонный класс контейнер ключей myset из отсортированного STL-контейнераlist. Определить в нем свою функцию поиска по значению и вставки (с учетом того, чтоключи должны быть уникальны, и вставка должна происходить таким образом, чтобыконтейнер оставался отсортированным).
Инстанцировать для вещественных чисел.07.11.20117Кафедра Компьютерных методов физики: программирование, первый курс, второй семестр16. ВариантСоздать шаблонный класс – ассоциативный массив mymap с использованиемSTL-контейнера vector. Ключ и знание должны быть разнотипными. Определить в немсвою функцию вставки пары ключ-значение (с учетом того, что ключи должны бытьуникальны) и поиска значения по ключу.
Инстанцировать для ключей, являющихсястроками символов и значений – вещественных чисел.17. ВариантСоздать шаблонный класс – ассоциативный массив mymap с использованиемSTL-контейнера list. Ключ и знание должны быть разнотипными. Определить в немсвою функцию вставки пары ключ-значение (с учетом того, что ключи должны бытьуникальны) и поиска значения по ключу. Инстанцировать для ключей, являющихсястроками символов и значений – вещественных чисел.18. ВариантСоздать свой шаблонный класс – динамический массив (myvector). Создать методы этогокласса – size, reverse, clear, push_back, pop_back, swap, sort.
Инстанцировать длясвоего класса, представляющего собой строку, изготовленную из STL-контейнераvector<char> (с определением в нем операций, необходимых для сортировки, вчастности, операторов сравнения).19. ВариантСоздать свой шаблонный класс – динамический массив (myvector). Создать методыкласса – size, resize, clear, insert, sort.
Инстанцировать для своего класса,представляющего строку, изготовленную из STL-контейнера vector<char> (сопределением в нем операций, необходимых для сортировки, в частности, операторовсравнения).20. ВариантСоздать свой шаблонный класс – двусвязный список (mylist). Поля класса: полезначений, два указателя на следующий и предыдущий элементы списка. Создать методыкласса – size, resize, reverse, clear, insert, erase, unique.
Инстанцировать длявещественных чисел.21. ВариантСоздать свой шаблонный класс – односвязный список (mylist). Поля класса: полезначений, указатель на следующий элемент списка. Создать методы класса – size, resize,clear, insert, erase. Инстанцировать для комплексных чисел.22. ВариантСоздать свой шаблонный класс – двусвязный список (mylist). Поля класса: полезначений, два указателя на следующий и предыдущий элементы списка. Создать методыкласса – size, resize, clear, pop_back, pop_front, push_back, push_front, merge, split.Инстанцировать для вещественных чисел.23. ВариантСоздать свой шаблонный класс – дерево (mytree). Поля класса: поле значений, указательна левое поддерево, указатель на правое поддерево. При заполнении дерева нужнообеспечивать, чтобы все ключи в левом поддереве были строго меньше ключа в данномузле, а все ключи в правом поддереве – строго больше.
Создать методы класса – find,insert, size. Инстанцировать для вещественных чисел.07.11.20118Кафедра Компьютерных методов физики: программирование, первый курс, второй семестр24. ВариантСоздать свой шаблонный класс – динамический массив (myvector) указателей напроизвольный тип, который является параметром шаблона. Сделать реализацию на основемассива указателей void* с приведением хранимых указателей к нужному типу. Создатьметоды класса – add, remove, size, resize, [].
Инстанцировать для указателей навещественные числа.25. ВариантСоздать свой шаблонный класс – очередь с приоритетом (myqueue) на основеотсортированного по убыванию значений vector. Создать методы класса – size, clear,push, pop. Метод push должен помещать заданное значение в очередь, сохраняясортировку, метод pop –удалять из очереди первый (то есть – наиболее приоритетный)элемент и возвращать его. Инстанцировать для вещественных чисел.07.11.20119.