![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
SShere |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.3.2009 Репутация: нет Всего: нет |
Задание не сложное, просто я не совсем понимаю что требуется.
Надо написать класс, реализующий контейнер, чтобы пользователь класса не задумывался о динамическом выделении памяти, объявлял объект и что-то с ним делал (если класс - контейнер, то что он будет с ним делать?) п.с. Об STL не было ни слова. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
написать класс динамического массива, т.е Вам надо сделать свое подобие std::vector (скорей всего не шаблонный, т.е для определенного типа)
|
|||
|
||||
SShere |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.3.2009 Репутация: нет Всего: нет |
Мне бы пример кода...
|
|||
|
||||
Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
Думаю, что-то вроде того... Ну и плюс обращения к элементам data_ и всякие операции с ними З.Ы. это был потуг показать умные указатели, но это плохо получилось и к тому же не рбязательно Это сообщение отредактировал(а) Cheloveck - 14.6.2009, 00:36 -------------------- ![]() |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Если вопрос не однозначный(как на собеседования бывает не редко), то возможно ожидается использование контейнера STL, прямо или косвенно.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
Вот так, наверное, понятнее. Без лишней лабуды, но с некоторыми нужными методами Это сообщение отредактировал(а) Cheloveck - 14.6.2009, 00:44 -------------------- ![]() |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Cheloveck, Можно и так:
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
имхо при set_element в случае ошибки нужно делать throw, ибо это ошибка и она неожидаемая. Ну и незабывать size_t Size() const {return ..}; сделать.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
zim22 |
|
||||||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
если пошла критика, то я бы добавил константный оператор индексирования наряду с обычным
эту функцию вообще бы удалил
и внутри operator[] проверял диапазон индекса и бросал exception Это сообщение отредактировал(а) zim22 - 14.6.2009, 12:10 |
||||||
|
|||||||
gosn1ck |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 18.4.2009 Репутация: 1 Всего: 1 |
zim22, можно в студию ваш варинт решения задачи? был бы благодарен очень
![]() |
|||
|
||||
zim22 |
|
||||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
по минимуму я бы его так реализовал: только основные операции: 1) перераспределение вектора в другую область памяти при исчерпании резервной памяти - функция reallocate 2) вставка элемента в вектор 3) итераторы для работы с алгоритмами 4) размер вектора - функция size
Это сообщение отредактировал(а) zim22 - 15.6.2009, 19:41 |
||||
|
|||||
sdukshis |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 23.3.2009 Репутация: нет Всего: 1 |
Мой вариант (буду признателен за конструктивную критику)
|
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
а я б на собеседовании сказал бы что не велосипедист и отнаследовался от std::vector, если бы "заставили" 8-)
... для пущей важности аллокатор можно передавать как параметр шаблона с значеним по умолчанию 8)) Добавлено через 1 минуту и 58 секунд T *array; - бяка. Никогда так не делайте 8) -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
jonie |
|
||||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
на пустом векторе выполните ?
operator= и конструктор копирования почему-то непохожи, хотя делают сутью одно и тоже.... да при желании много чего можно наплести, не надо просто изобретать велосипеды) -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||||||||||
|
|||||||||||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |