C++ группа 2 — различия между версиями
| Строка 86: | Строка 86: | ||
'''hint''': std::iterator, std::iterator_traits. | '''hint''': std::iterator, std::iterator_traits. | ||
| + | |||
| + | == 18.03.2016 == | ||
| + | |||
| + | Стандартные алгоритмы и функторы. На протяжении всего занятия запрещается использовать for, do, while и goto. | ||
| + | |||
| + | # Посчитать сколько раз во входном файле встречается каждое из слов и вывести статистику в выходной файл (выполнить без лямбд) | ||
| + | # Обрезать пробелы у строки слева и справа | ||
| + | # quick sort | ||
| + | # gather. Собрать все элементы по заданному предикату подряд в какой то точке контейнера | ||
| + | [[File:Gather.png|400px|thumb|center||Gather example]] | ||
| + | |||
| + | '''hints''': for_each, transform, distance, next, find_if, nth_element, istream_iterator, ostream_iterator, stable_partition,rotate | ||
Версия 11:05, 18 марта 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
11.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.
18.03.2016
Стандартные алгоритмы и функторы. На протяжении всего занятия запрещается использовать for, do, while и goto.
- Посчитать сколько раз во входном файле встречается каждое из слов и вывести статистику в выходной файл (выполнить без лямбд)
- Обрезать пробелы у строки слева и справа
- quick sort
- gather. Собрать все элементы по заданному предикату подряд в какой то точке контейнера
hints: for_each, transform, distance, next, find_if, nth_element, istream_iterator, ostream_iterator, stable_partition,rotate