63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
1 | ||||||
Стек на шаблонах - оцените реализацию17.07.2014, 00:21. Показов 5636. Ответов 101
Метки нет (Все метки)
просто хочу узнать чужое мнение, написал стек через шаблоны, оцените реализацию
з.ы. сначала пытался париться как это в идеале надо prev, next (т.е. предыдущий и следующий элементы) потом забил, толку с них никакого, все равно по смещению ищу значение
0
|
17.07.2014, 00:21 | |
Ответы с готовыми решениями:
101
Сделать реализацию list (классы node и list) на шаблонах Оцените реализацию внедрения зависимостей Оцените реализацию Угадывателя чисел Оцените реализацию вертикального списка |
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
17.07.2014, 19:05 [ТС] | 61 |
я не говорил что не знаю... я возвращаю указатель на копию я не понимаю о каких накладных речь выделяется всего лишь память на 1 элемент, который и возвращается функцией, а там уже что с ним будут делать не моя забота...
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.07.2014, 19:06 | 62 |
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
17.07.2014, 19:08 [ТС] | 63 |
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.07.2014, 19:10 | 64 |
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
17.07.2014, 19:10 [ТС] | 65 |
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.07.2014, 19:12 | 66 |
Значит, у библиотеки хреновый интрфейс, котороый провоцирует утечки памяти, ибо ответа на вопрос о ее освобождении нет.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
17.07.2014, 19:16 [ТС] | 67 |
что из фразы "тот кто вызывал функцию Pop" не понятно?
Добавлено через 3 минуты и ДАЖЕ если я захочу переделать и сделать void Pop и соответственно какую нибудь T Peek, что вы предложите возвращать если стек пуст??? в этом весь вопрос...
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.07.2014, 19:23 | 68 |
В общем случае объект может быть разделяемым между несколькими владельцами и его время жизни определяется временем жизни всех его владельцев.
Добавлено через 4 минуты Можно кинуть исключение или сказать, что это undefined behavior.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
17.07.2014, 19:26 [ТС] | 69 |
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.07.2014, 19:29 | 70 |
GetHelp, неопределенное поведение. В частности: разыменование нулевого указателя, выход за границы массива. Один из этих вариантов возможен и при попытке снятия объекта с пустого стека в зависимости от реализации нижележащего контейнера.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
17.07.2014, 19:40 [ТС] | 71 |
0x10, вы имеете ввиду что то типа этого?
int32_t safe_div_int32_t (int32_t a, int32_t b) или int32_t unsafe_div_int32_t (int32_t a, int32_t b) Добавлено через 27 секунд вот тут нырыл http://blog.regehr.org/archives/213 Добавлено через 3 минуты а исключение кинуть это что то типа throw(0)?
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.07.2014, 19:40 | 72 |
Я говорю о том, что получение доступа к элементу пустого контейнера есть исключительная ситуация, свидетельствующая о неправильном использовании библиотеки. Разработчик этой библиотеки может либо допускать такое использование и при попытке доступа тупо вылезать за границы памяти, либо генерировать исключение.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
17.07.2014, 19:41 [ТС] | 73 |
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.07.2014, 19:41 | 74 |
Кинет объект типа int, по которому будет невозможно понять что произошло. Из стандартных исключений наиболее подходящим кажется http://www.cplusplus.com/refer... _of_range/
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
17.07.2014, 19:48 [ТС] | 75 |
0x10, никак не пойму как его правильно заюзать, не подскажете?
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.07.2014, 19:51 | 76 |
Если не хватает знаний по основам - не вижу смысла. Тем более, выше я говорил, что можно без исключений.
Нормальным вариантом кажется посмотреть на реализацию в стандартной библиотеке и сделать по образу и подобию. Для этого не обязательно лезть глубоко, достатоно посмотреть интерфейсы стандартных контейнеров.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
17.07.2014, 19:58 [ТС] | 77 | |||||
хотя бы тыкните пальцем что читать... ибо вот я открыл файл с объявлением этого стандартного стека... и нехрена не могу в нем понять вообще...
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|||||||||||
17.07.2014, 20:07 | 78 | ||||||||||
Любую книгу по плюсам, раздел - обработка исключений.
В данном случае реализация будет примерно такая (псевдокод):
Оставим только функции pop и top, раз уж о них говорили, и все становится предельно ясно. Для краткости определения синонимов типов тоже удалены, предполагая, что из имена в контексте говорят за себя.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
17.07.2014, 20:18 [ТС] | 79 | |||||
ну короче как то так...
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.07.2014, 20:21 | 80 |
Теперь value в Pop не используется и 100% ведет к утечкам.
0
|
17.07.2014, 20:21 | |
17.07.2014, 20:21 | |
Помогаю со студенческими работами здесь
80
Оцените реализацию классов с использованием наследования Программа для шифрования файлов в один контейнер. Оцените реализацию пытаюсь сделать реализацию через считывание из файла кол-ва чисел, i,но незнаю как сделать реализацию из файла в массив и сортировки. Ошыбка на шаблонах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |