|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|||||||||||
Пишу примитивный никому не нужный контейнер25.09.2014, 10:12. Показов 4162. Ответов 42
Метки нет (Все метки)
захотелось для практики написать аналог array из STL
ну не полностью аналог, так, по своему как мне он был бы удобен... безо всяких лишних на мой взгляд переобъявлений типов аля "typedef size_t size_type", которых куча объявлена в реальном array и т.п. лишних вещей... в общем сейчас пока что проблема с конструктором копирования, вроде кажется правильно все, но x в main упорно хранит мусор в конце ну и + посмотрите вообще все очень плохо написано или как?array.h
0
|
|||||||||||
| 25.09.2014, 10:12 | |
|
Ответы с готовыми решениями:
42
1 Апреля...Никому не веря Никому не нужен стажер верстальщик? Заменить контейнер vector, использовавшийся для хранения текстовых строк (листинг 2.3), на контейнер list |
|
2410 / 1946 / 764
Регистрация: 27.07.2012
Сообщений: 5,582
|
|||||||
| 25.09.2014, 11:45 | |||||||
0
|
|||||||
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
| 25.09.2014, 14:47 [ТС] | ||||||
|
а вот еще нашел хорошее пояснение работы с памятью в векторе http://alenacpp.blogspot.ru/2005/06/vector_30.html
Добавлено через 2 часа 58 минут так появились еще вопросы: 1. как в классе объявить константу? я имею ввиду не внутри какой то функции класса, а как константную переменную класса с доступом private, просто не понятно где ей присвоить стартовое значение... пытался и так и так никак не выходит...
0
|
||||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||||||||||||
| 25.09.2014, 14:51 | ||||||||||||
|
В противном случае можно так:
0
|
||||||||||||
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|||||||
| 25.09.2014, 15:21 [ТС] | |||||||
|
и еще нашел кажется как исключение вызвать
кстати а очень плохо вызывать в классе из одной функции другую? скажем у меня есть resize и я хочу сделать push_back и чтобы не переписывать кучу кода из resize по работе с памятью я просто ее заюзаю в push_back в нужном месте инкрементировав предварительно счетчик? а там уже в resize я уже реализовал чтобы она не перевыделяла каждый раз память а выделяла буферами если не хватает...
0
|
|||||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||
| 25.09.2014, 15:26 | ||
|
Другое дело, что в данном случае resize не очень подходит, поскольку нужна другая семантика - reserve.
0
|
||
| 25.09.2014, 17:19 | |
|
0
|
|
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||
| 25.09.2014, 17:27 [ТС] | ||||||
|
в общем как то так
![]()
0
|
||||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||||||||
| 25.09.2014, 17:58 | ||||||||
|
Добавлено через 3 минуты + Оператор присваивания. + Move-конструктор. + Константный оператор[] + Итераторы
0
|
||||||||
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||||||||||||||
| 25.09.2014, 19:26 [ТС] | ||||||||||||||
![]() ![]() Добавлено через 2 минуты : "error C2864: "Array<T>::m_k": статический элемент данных с инициализатором внутри класса должен иметь неизменяемый целочисленный тип const"Добавлено через 10 минут
0
|
||||||||||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 25.09.2014, 21:01 | ||
|
Может тебе и сложно сейчас это понять, но как-только начнешь работать программистом, понимание придет. PS. Константность твой друг, не стоит ей пренебрегать.
0
|
||
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
||
| 25.09.2014, 22:01 [ТС] | ||
|
Добавлено через 5 минут кстати такой вопрос еще: а в списке проканает такая преаллокация памяти? думаю после массива, попробовать сделать список (двусвязный)
0
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 25.09.2014, 22:21 | ||
|
У кода много мер качества. Иногда не достаточно чтобы код просто работал. Т.е. отмазка "и так сойдет" не пойдет, если от этого зависит прибыль компании. И не надо все воспринимать как наезд.
0
|
||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|||||||||||||||||
| 26.09.2014, 08:38 | |||||||||||||||||
|
Иначе такой код не скомпилируется:
Последние два пункта - то, о чем и говорит DrOffset 1. Не всегда очевидно как должен быть реализован оператор == для типа. Например, если это сложная структура, то сравнение в разных контекстах может быть выполнено по разным критериям. Это подводит к мысли, что было бы неплохо передавать предикат сравнения, но: 2. Оператор == бинарный, т.е. передать предикат не получится. Т.о. реализация сравнения двух массивов в виде внешней функции - универсальнее. 3. Нас устраивает, что в случае сравнения двух массивов указателей будут сравниваться исключительно их адреса? 4. Значения с плавающей точкой не совсем корректно сравнивать на строгое равенство, обычно сравнение выполняется с некоторой точностью. От реализации не отговариваю, но с этими вопросами нужно определиться. Последний const - часть сигнатуры, поэтому неоднозначности не будет. Нужно по полной аналогии с константным size, см пример выше. Добавлено через 2 минуты
0
|
|||||||||||||||||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||||
| 26.09.2014, 11:36 | ||||||
|
Наверное уже было заявлено в треде, но в исправленной версии не увидел.
Пишем:
P.S. m_size = size в 41 строке. Удивляемся почему всегда true.. (Оператор присваивания заместо оператора сравнения в тернарке).
0
|
||||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|||
| 26.09.2014, 11:48 | |||
|
Добавлено через 8 минут PS На работоспособность не проверял.
1
|
|||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||
| 26.09.2014, 12:12 | ||
|
0
|
||
| 26.09.2014, 12:29 | |
|
0
|
|
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||
| 26.09.2014, 12:31 | ||
|
Выделение памяти с помощью new происходит в два этапа. 1. Выделение сырой памяти. 2. Конструирование объектов. Если один из конструкторов кинул исключение, то выделенная на первом этапе память будет освобождена. Т.е. не страшно, что не будет вызван деструктор ~Array.
0
|
||
| 26.09.2014, 12:31 | |
|
Неужто этого с почтой никому не приходилось делать ???? Какой смысл иметь СДЛ если он никому не нужен? Народ, а никому не попадалась плата ардуино - под ЛУТ/смд? Что значит НИКОМУ неизвестный (даже гуглу) атрибут SMART HDD? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|