
- •«Объектно-ориентированный анализ и проектирование»
- •1. Принципы ооп. Классы.
- •Описание классов.
- •Объекты класса.
- •Конструкторы
- •Конструктор копирования
- •Статические элементы класса
- •Дружественные функции и классы
- •Деструкторы
- •Перегрузка операций
- •Перегрузка унарных операций
- •Перегрузка бинарных операций
- •Перегрузка операции присваивания
- •Рекомендации по составу классов
- •2. Наследование
- •Ключи доступа
- •Простое наследование
- •Пример замещения функций (практикум)
- •Виртуальные методы
- •Множественное наследование
- •3. Отношения между классами. Диаграммы класссов на языке uml.
- •4. Шаблоны классов.
- •4.1. Определения шаблонов классов Queue и QueueItem
- •4.2. Конкретизация шаблона класса
- •4.3. Аргументы шаблона для параметров-констант
- •4.4. Функции-члены шаблонов классов
- •5. Обработка исключительных ситуаций
- •5.1. Общий механизм обработки исключений.
- •5.2 . Синтаксис исключений
- •5.3. Перехват исключений
- •5.4. Исключения в конструкторах и деструкторах
- •Vector(int n) // Конструктор
- •5.5. Список исключений функции.
- •6. Строки
- •Преобразование строк
- •7. Контейнерные классы
- •7.1. Векторы.
- •7.2. Двухсторонние очереди (deque).
- •7.3. Списки (List).
- •7.4. Стеки
- •7.5. Очереди (queue)
- •7.6. Очередь с приоритетами(priority_queue)
- •8. Ассоциативные контейнеры
- •8.1. Словари (map)
- •8.2. Словари с дубликатами (multimap)
- •8.3. Множества (set)
- •8.4. Множества с дубликатами (multiset)
- •8.5. Битовые множества (bitset)
Преобразование строк
insert(size_t pos1, const string & str); // вставляет с pos1 (первые pos1 символов сохраняются, остальные сдвигаюися (out_of_range if pos, length_error));
try
{ size_t n=4;
s2.insert(n, s1);
}
catch(out_of_range &range)
{cerr << "error for insert: \n" << range.what() <<endl;
}
insert(size_t pos1, const string & str , size_t pos2, size_t n); // вставляет с pos1 (первые pos1 символов сохраняются) символы str c pos2 n символов, остальные сдвигаюися (out_of_range if pos, length_error));
insert(size_t pos1, const char *str , size_t n); // вставляет с pos1 (первые pos1 символов сохраняются) n символов строки старого типа;
erase(size_t pos=0, size_t n=npos); // удаление n элементов
void clear();
replace(size_t pos1, size_t n1, const string & str); // вставляет с pos1 (первые pos1 символов сохраняются), удаляется n1 символов, остальные после (out_of_range if pos, length_error));
replace(size_t pos1, size_t n1, const string & str, size_t pos2, size_t n2); // вставляет с pos1 (первые pos1 символов сохраняются), удаляется n1 символов, вставляет с pos1 символы str c pos2 n2 символов, остальные после (out_of_range if pos, length_error));
replace(size_t pos1, size_t n1, const char* str, s size_t n2); // вставляет с pos1 (первые pos1 символов сохраняются), удаляется n1 символов, вставляет с pos1 n2 символов строки старого типа;
swap (string &str); //обмен содержимого 2-х строк
string substring(size_t pos=0, size_t n=npos) const;// выделение подстроки (out_of_range)
const char * c_str() const; // преобразование в старый тип (строку нельзя менять!!)
const char * data() const; // преобразование в старый тип (строку нельзя менять!!)
size_t copy(char *str, size_t n, size_t pos=0); //не копирует нуль-символ, возвращает количество скопированных элементов
Преобразование подстрок
size_t find(const string &str, size_t pos=0) const; /ищет самое левое вхождение строки в вызывающую строку, начиная с позиции pos, возвращает позицию или npos;
size_t find(char c,size_t pos=0) const;
size_t rfind(const string &str, size_t pos=npos) const; /ищет самое правое вхождение строки в вызывающую строку, до позиции pos, возвращает позицию или npos;
size_t rfind(char c,size_t pos= npos) const;
size_t find_first_of(const string &str, size_t pos=0) const; /ищет самое левое вхождение любого символа строки str в вызывающую строку, начиная с позиции pos;
size_t find_first_of(char c, size_t pos=0) const; /ищет самое левое вхождение символа с, начиная с позиции pos;
size_t find_last_of(const string &str, size_t pos= npos) const; /ищет самое правое вхождение любого символа строки в вызывающую строку, начиная с позиции pos;
size_t find_last_of(char c, size_t pos= npos) const; /ищет самое правое вхождение символа с, начиная с позиции pos;
size_t find_first_not_of(const string &str, size_t pos=0) const; /ищет самую левую позицию, начиная с позиции pos, где ни один символ строки str не совпадает с символом вызывающей строки;
size_t find_first_not_of(char c, size_t pos=0) const;
size_t find_last_ not_of(const string &str, size_t pos= npos) const;
size_t find_last_not_of(char c, size_t pos= npos) const;
Cуществуют варианты для строк старого стиля.
Сравнение частей строк
int compare(const string & str) const; // srtcmp;
int compare(size_t pos1, size_t n1, const string & str) const; // strcmp c pos1 n1 символов;
int compare(size_t pos1,size_t n1,const string &str,size_t pos2, size_t n2) const; // strcmp c pos1 n1 символов; // strcmp c pos1 n1 символов pos1 n2 символов из str с pos2;
Характеристки строк
size size() const; // количеcтво элементов строки
size length() const; // количеcтво элементов строки
size max_size() const; // максимальная длина строки
size capacity() const; // объем строки, занимаемой строки
bool empty() const; //