Для студентов МГТУ им. Н.Э.Баумана по предмету Основы программирования на C++С++ ИУ8 ЛР5: стекС++ ИУ8 ЛР5: стек
2021-05-302021-05-30СтудИзба
ДЗ: С++ ИУ8 ЛР5: стек
Описание
# Лабораторная работа №5
## Задание 1
Реализовать некопируемый перемещаемый шаблон класса **stack** с методами `pop`, `push`, `head`.
```cpp
template <typename T>
class stack
{
public:
void push(T&& value);
void push(const T& value);
void pop();
const T& head() const;
};
```
⚠️ *Стандартными контейнерами пользоваться **запрещено**.*
## Задание 2
Реализовать некопируемый перемещаемый шаблон класса **stack** для некопируемых перемещаемых типов с методами:
* `push_emplace`, принимающего те же аргументы, что и конструктор для `T`, где `T` - пареметр шаблона;
* `head`, возвращающего ссылку на верхушку стека;
* `pop`, выполняющего снятие элемента с верхушки стека.
```cpp
template <typename T>
class stack
{
public:
template <typename ... Args>
void push_emplace(Args&&... value);
void push(T&& value);
const T& head() const;
T pop();
};
```
⚠️ *Стандартными контейнерами пользоваться **запрещено**.*
## Задание 3
Реализовать **unit-test**'ы с использованием фреймворка **Google Test** для реализованных шаблонов в заданиях 1 и 2.
## Рекомендации
Характеристики домашнего задания
Учебное заведение
Семестр
Просмотров
36
Покупок
0
Размер
43,26 Kb
Список файлов
- ._lab5_stack-master 220 b
- ._.DS_Store 120 b
- ._.clang-format 212 b
- ._.gitignore 212 b
- ._.gitmodules 212 b
- ._.travis.yml 212 b
- ._AUTHORS 212 b
- ._CMakeLists.txt 212 b
- ._CONTRIBUTING.md 212 b
- ._Dockerfile 212 b
- ._LICENSE 212 b
- ._README.md 268 b
- ._settings.yml 212 b
- ._lab-05-stack.iml 212 b
- ._misc.xml 212 b
- ._modules.xml 212 b
- ._vcs.xml 212 b
- ._workspace.xml 212 b
- ._CMakeCache.txt 212 b
- ._CMakeFiles 210 b
- ._clion-environment.txt 212 b
- ._clion-log.txt 212 b
- ._cmake.check_cache 212 b
- ._FindGcov.cmake 212 b
- ._FindLcov.cmake 212 b
- ._Findcodecov.cmake 212 b
- ._zad1.hpp 268 b
- ._zad2.hpp 368 b
- ._checks.sh 212 b
- ._coverage.sh 212 b
- ._duplication.sh 212 b
- ._genenv.sh 212 b
- ._tests.sh 212 b
- ._source1.cpp 212 b
- ._source2.cpp 212 b
- ._test.cpp 212 b
- ._gate 210 b
- ._polly 210 b
- lab5_stack-master
- .DS_Store 8 Kb
- .clang-format 418 b
- .github
- settings.yml 2,68 Kb
- .gitignore 270 b
- .gitmodules 167 b
- .idea
- lab-05-stack.iml 97 b
- misc.xml 240 b
- modules.xml 276 b
- vcs.xml 180 b
Комментарии
Сопутствующие материалы