C++ группа 2
Опейкин Александр
+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
25.03.2016
Реализовать утилиту, которая по заданому пути рекурсивно выведет структуру каталогов/файлов. Дополнение: раскрасить директории в синий, исполняемые файлы - в зеленый.
Будем использовать boost-filesystem
Установка
sudo apt-get install libboost-filesystem-dev
Компиляция примеров
g++ main.cpp -lboost_system -lboost_filesystem
референсы
http://www.boost.org/doc/libs/1_60_0/libs/filesystem/doc/tutorial.html http://www.boost.org/doc/libs/1_60_0/libs/filesystem/doc/reference.html
ключевые слова
path directory_iterator is_directory is_regular_file