Далее перечислены пять функций, оперирующих произвольными областями памяти, в частности, выполняющих операции с символьными массивами, не отслеживая завершающий нулевой байт.
• Функция memc h г () возвращает указатель на первое вхождение младшего байта аргумента ch в массиве buf длиной count байтов:
const void* memchr(const void* buf, int ch, size__t count): void* memchr(const void* buf, int ch, size^t count);
• Функция memcmpO сравнивает первые count байтов символьных массивов bufl и buf2 и длиной count байтов в лексикографическом порядке:
int memcmp(const void *bufl, const void *buf2, size_t count);
Функция возвращает:
О -1, если содержимое bufl меньше содержимого buf2; О 0, если содержимое bufl совпадает с содержимым buf2; О +1, если содержимое bufl больше содержимого buf2.
• Функция memcpy () копирует count байтов из символьного массива src в символьный массив dest и возвращает указатель на dest:
void * memcpy(void *dest, const void *src, size_t count);
• Функция memmoveO копирует count байтов из символьного массива src по адресу dest:
void * memmove(void *dest, const void *src, size__t count);
Массивы могут перекрываться. Функция возвращает указатель на dest.
• Функция memset () заполняет первые count байтов символьного массива dest символом, взятым из младшего байта ch:
void * memset(void *dest, int ch, size_t count);
Упражнения
Во всех заданиях обязательно должны быть реализованы инициализирующий конструктор, конструктор копирования, деструктор, ввод-вывод. Подходящие операции реализуются как методы класса, а остальные — как внешние дружественные функции.
3. Реализовать итератор класса TDeque как внешний класс.
4. Использовав в качестве основы класс TDeque, реализовать операции объединения и пересечения множеств. Если потребуется, реализовать дополнительные методы.
5. Для изучения иностранного языка имеются специальные карточки, каждая из которых представляет собой структуру WordCard, содержащую иностранное слово и его перевод. Использовав в качестве образца класс TDeque, реализовать класс словаря иностранных слов Dictionary, который содержит список карточек иностранных слов. Карточки добавляются в словарь и удаляются из него. В словаре не должно быть дублирования. Реализовать поиск слова как отдельный метод. Реализовать операцию объединения словарей. При объединении новый словарь должен содержать без повторений все слова, содержащиеся в обоих словарях-операндах. Реализовать операцию ассоциативного доступа; ключом является иностранное слово.
|