63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
1 | ||||||
Стек на шаблонах - оцените реализацию17.07.2014, 00:21. Показов 5632. Ответов 101
Метки нет (Все метки)
просто хочу узнать чужое мнение, написал стек через шаблоны, оцените реализацию
з.ы. сначала пытался париться как это в идеале надо prev, next (т.е. предыдущий и следующий элементы) потом забил, толку с них никакого, все равно по смещению ищу значение
0
|
17.07.2014, 00:21 | |
Ответы с готовыми решениями:
101
Сделать реализацию list (классы node и list) на шаблонах Оцените реализацию внедрения зависимостей Оцените реализацию Угадывателя чисел Оцените реализацию вертикального списка |
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
17.07.2014, 20:25 [ТС] | 81 | |||||
тьфу забыл
Не по теме: а нехило мы развернулись на 9 страниц :D Добавлено через 2 минуты з.ы. вроде теперь все ок уже? итоговая оценка =)
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
17.07.2014, 21:12 [ТС] | 83 |
эмм а с этим то какие проблемы? как вы еще собираетесь добавлять элемент в стек как не через параметр функции?
а какие с этим проблемы? по мне так все нормально...
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.07.2014, 21:16 | 84 |
Передать по константной ссылке. Сейчас при добавлении объекта в стек происходит два копиросания. Первое - при передаче параметра, второе - парой строк ниже, при присваивании.
Проблема стилистическая, противоречит логичности кода. После return последующие инструкции не будут выполняться, следовательно, else и дополнительный уровень вложенности - избыточность. Ну и я не перевариваю объект head, у которого есть поле prev. Либо это хвост, у которого есть предыдущий элемент, либо это голова, у которой есть следующий.
0
|
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
|
|
17.07.2014, 21:16 | 85 |
Через параметр, только передаваемый по константной ссылке.
Что изменится, если else убрать?
0
|
Каратель
|
||||||
17.07.2014, 21:18 | 86 | |||||
через параметр, но по ссылке на константу
а по мне те кто так пишут(я про else) просто боты
1
|
0x10
|
17.07.2014, 21:35
#87
|
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
17.07.2014, 22:24 [ТС] | 88 |
че за ссылка? не понимаю к чему усложнять... вы еще скажите что вообще передавать параметры в функциях это плохо и надо писать функции без параметров
бред какой то вы пишите, все нормально будет выполняться... потому что просто напросто в случае когда !head код просто не пойдет по ветке с return.... Добавлено через 2 минуты брал за образец такой список http://learnc.info/adt/linked_list.html, там было это объявлено как next, но по сути это является не следующим, а именно предыдущим значением... меня лично это сбивало с толку
0
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
17.07.2014, 22:26 | 90 |
Это не усложнение, а нужна оптимизация. В противном случае, при большом кол-ве данных твоя программа будет работать медленнее, чем программа с передачей параметров через ссылки.
Без причины передавать, например, структуру с набором данных не по ссылке - да, плохо.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
17.07.2014, 22:27 [ТС] | 91 |
Jupiter, вообще первый раз вижу такой странный код
1. функция внутри структуры? да вы видно шутите... разве так можно? 2. что за странный синтаксис у этой функции? что за двоеточие? и почему присвоение вне фигурных скобок? 3. head = new NODE(value, head); вообще не понял как это?
0
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
|
17.07.2014, 23:03 | 92 |
Толсто. Больше похоже на грубость.
0
|
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
|
|
17.07.2014, 23:45 | 93 |
Можно. В С++ struct - это класс.
Список инициализации. Любая книга по С++ в разделе "классы и ООП" даст ответ. Конструктор. Инициализация объекта в выделенной динамической памяти. Опять же, в любой книге это есть.
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
18.07.2014, 04:49 | 94 |
В конкретно этом случае я говорю о стиле кода, а не о последовательности выполнения операторов. Код избыточный и неестественный для чтения человеком.
0
|
Хедин
|
18.07.2014, 08:20
#95
|
Не по теме: Понимаю, конечно, что самоуверенность прет изо всех щелей, но обычно, если код непонятен, то лучше попросить у автора объяснение, вдруг это вы не в курсе каких то особенностей языка
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
18.07.2014, 16:45 [ТС] | 96 |
че реально? первый раз слышу...
почитаю... ни разу не видел тож =( не знаю, а мне норм... Добавлено через 1 минуту еще не понятно такое объявление что значит T& value??? * - значит указатель, & - применяется для взятия адреса, как можно & юзать в параметре объявления функции?
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
18.07.2014, 16:52 [ТС] | 98 |
ну и наконец я подумал и мне пофиг как на ваш взгляд красиво, а как нет, я оставлю для себя пуш с возвращаемым значением Т, разве что оставлю Т без указателя и с ошибкой при вызове с пустым стеком... всю остальную фигню ну нафиг, зачем лишние телодвижения? которые как я уже сказал почти никогда не могут пригодится... тема про то что плохо передавать в параметрах переменные звучит как полный бред, я буду делать класс так чтобы его потом было удобно использовать, а не так чтобы было все идеально правильно на ваш взгляд... как видите из скринов я попробовал класс аж на 5к значений, все работало за секунду... так что я не знаю сколько надо брать значений чтоб было реально заметное замедление работы из за каких то там хрен знает где утечек...
Добавлено через 1 минуту да у меня так и вовсе целые каникулы ок в принципе класс работает, тему можно закрыть Добавлено через 2 минуты мне только вот про это интересно узнать, может я чего то не знаю еще...
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
18.07.2014, 17:01 | 99 |
GetHelp, Не знаете. Практически всего, что касается С++. Амперсанд (&) используется не только для взятия адреса, но так же для указания, что значение передано по ссылке (про ссылки читать в учебнике).
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
18.07.2014, 17:03 [ТС] | 100 |
ForEveR, бррр нет уж увольте, вообще си++ не для меня, мне нравится чистый си...
0
|
18.07.2014, 17:03 | |
18.07.2014, 17:03 | |
Помогаю со студенческими работами здесь
100
Оцените реализацию классов с использованием наследования Программа для шифрования файлов в один контейнер. Оцените реализацию пытаюсь сделать реализацию через считывание из файла кол-ва чисел, i,но незнаю как сделать реализацию из файла в массив и сортировки. Ошыбка на шаблонах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |