Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 4
Регистрация: 05.11.2016
Сообщений: 64
1

Шаблоны. Задача

29.09.2017, 08:26. Показов 870. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разработать шаблон числового растущего массива, добавив все арифметические операции и операции проверки на равенство и неравенство. Помогите немного с этим, просто никогда не пользовался шаблонами template.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Array
{   public:
//типы
typedef double          value_type;
typedef double*         iterator;
typedef const double*   const_iterator;
typedef double&         reference;
typedef const double&   const_reference;
typedef std::size_t     size_type;
    //конструкторы/копирование/деструктор
    Array(const size_type& n = minsize);
    Array(const Array& array);
    Array(iterator first, iterator last);
    ~Array();
    Array& operator=(const Array&);
    //итераторы
    iterator begin() {return elems; }
    const_iterator begin() const { return elems; }
    iterator end() { return elems+Count; }
    const_iterator end() const { return elems+Count; }
    //размеры
    size_type size() const;                     //текущий размер массива
    bool empty() const;                         //есть ли элементы
    size_type capacity() const;                 //потенциальный размер
    void resize(size_type newsize);             //изменить размер
    //доступ к элементам
    reference operator[](size_type)
    const_reference operator[](size_type) const;
    reference front() { return elems[0]; }
    const_reference front() const { return elems[0]; }
    reference back() { return elems[size()-1]; }
    const_reference back() const { return elems[size()-1]; }
    //методы-модификаторы
    void push_back(const value_type& v);
    void pop_back();                                //удалить последний элемент
    void clear() { Count = 0; }                     //очистить массив
    void swap(Array& other);                        //обменять с другим массивом
    void assign(const value_type& v);               //заполнить массив
private:
    static const size_type minsize = 10;            //минимальный размер массива
    size_type Size;                                 //выделено элементов в памяти
    size_type Count;                                //количество элементов в массиве
    value_type * elems;                             //указатель на данные
 
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2017, 08:26
Ответы с готовыми решениями:

Задача прямоугольная матрица / шаблоны функций
дана прямоугольная матрица, используя шаблон функций найти: количество отрицательных элементов в...

«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами».
«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами». Есть ли разница в этих понятиях? Если...

Шаблоны. Плохо понимаемые моменты из книги "Шаблоны С++. Справочник разработчика". (Вандевурд, Джосаттис)
Так как изучаю эту книгу, то в некоторых местах возникают вопросы. Чтобы не плодить много тем,...

Помогите писать на С++ через шаблоны. Консуле я писал, но надо писать исползуя шаблоны
В одномерном массиве, состоящем из п вещественных элементов, вычислить: 1) количество элементов...

2
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.09.2017, 13:15 2
Цитата Сообщение от Mentalist_ Посмотреть сообщение
просто никогда не пользовался шаблонами template.
Сделайте всё для класса с типом данных int. Желательно, чтобы облегчить дальнейший переход на шаблон класса, создать для используемого типа синоним через using или typedef. Когда оттестируйте функциональность класса на конкретном типе (int), просто замените все вхождения названия синонима на тип T (название параметра шаблона).
И помните, что реализация функций шаблона класса должна быть видна в той же единице трансляции, что и объявление. Проще говоря - разместите реализацию шаблона в хедере.
0
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
29.09.2017, 14:07 3
автор запостил код, где уже так сделано. итого, если там все правильно, то для шаблонизации осталось совсем немного:
C++
1
2
3
4
5
6
7
8
9
10
11
template <typename T>
class Array
{   public:
//типы
typedef T                value_type;
typedef T*              iterator;
typedef const T*     const_iterator;
typedef T&             reference;
typedef const T&     const_reference;
typedef std::size_t  size_type;
...
0
29.09.2017, 14:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2017, 14:07
Помогаю со студенческими работами здесь

Задача на шаблоны
В разделе баз данных хранится шаблон кроссворда. Преобразовать шаблон к виду,, пригодному для...

Хранить шаблоны документов в базе и выводить данные в эти шаблоны
Доброго времени суток. Интересует вопрос: мне необходимо формировать вордовские документы по...

Чем отличаются шаблоны HTML и шаблоны WordPress
В чём различие между шаблонами HTML и WordPress. Кроме того, что создаются они разными способами....

Шаблоны
Я разбираюсь с ООП в С++ и застрял на шаблонах, будьте добры приведите пример кода, к примеру ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru