C++ группа 2 — различия между версиями
Материал из SEWiki
| Строка 60: | Строка 60: | ||
== 26.02.2016 == | == 26.02.2016 == | ||
[[File:Template_multimethods.pdf]] | [[File:Template_multimethods.pdf]] | ||
| + | |||
| + | == 04.03.2016 == | ||
| + | |||
| + | template <class T> | ||
| + | class deque | ||
| + | { | ||
| + | public: | ||
| + | operator[]() | ||
| + | push_back() | ||
| + | pop_back() | ||
| + | push_front() | ||
| + | pop_fron() | ||
| + | size() | ||
| + | begin() | ||
| + | end() | ||
| + | rbegin() | ||
| + | rend() | ||
| + | }; | ||
| + | |||
| + | push_back и push_front инвалидируют итераторы, но никогда не вызывают конструкторов копирования для '''T''' | ||
| + | |||
| + | Итераторы должны работать со стандартными алгоритмами. Для проверки вызвать std::sort. | ||
| + | |||
| + | '''hint''': std::iterator, std::iterator_traits. | ||
Версия 01:32, 4 марта 2016
Опейкин Александр
+7-931-278-21-60
Содержание
5.12.2015
Данные Файл:Schemed read data.gz Файл:New data.tgz
12.02.2016
Реализовать 3 класса
1. Массив фиксированного(на этапе компиляции) размера
template <...>
class Array
{
public:
Array() {}
T & operator[]( size_t i );
T const& operator[]( size_t i ) const;
size_t size() const;
};
2. Специализацию массива Array для bool. Один bool должен занимать один бит.
3. Стек. Должен уметь работать поверх вашего Array
template <...>
class Stack
{
public:
T const& top() const;
T & top();
void push(T const& t);
void pop();
bool empty();
size_t size();
};
19.02.2016
Реализовать вектор со строгой гарантией исключений для push_back
template <class T>
class Vector
{
public:
operator[]()
push_back()
pop_back()
size()
reserve()
resize()
};
26.02.2016
Файл:Template multimethods.pdf
04.03.2016
template <class T>
class deque
{
public:
operator[]()
push_back()
pop_back()
push_front()
pop_fron()
size()
begin()
end()
rbegin()
rend()
};
push_back и push_front инвалидируют итераторы, но никогда не вызывают конструкторов копирования для T
Итераторы должны работать со стандартными алгоритмами. Для проверки вызвать std::sort.
hint: std::iterator, std::iterator_traits.