|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.04.2016, 21:20 | #1 |
Форумчанин
Регистрация: 29.06.2013
Сообщений: 132
|
А нужны ли коллекции?
Перечитываю тему массивов, т.к. на практике пришлось столкнутся с некоторыми моментами, которые я не совсем понимаю. Узнал некоторые новые вещи. Но, в то же самое время, появились некоторые непонятки.
Вот, например, имеются динамические массивы, с которыми работают посредством класса ArraySort, а есть коллекции Queue. Если с массивами я ещё когда писал на Си, работал, и назначение их я понимаю, то надобность коллекций для меня не понятна. Зачем они вообще нужны? Ведь всё можно поместить в те же динамические массивы, тем более, они даже удобнее т.к. возможность работы даже не типизированными массивами имеется. Каково применение коллекций? |
01.04.2016, 21:28 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Как вы добавите элемент в массив (.Add) если вы изначально не знаете сколько вам понадобится?
Придется велосипедить свой List<T>/ArrayList/std::vector/... перевыделящий память (count + capacity). Да и даже list.Add(item) явно удобнее, чем arr[count++] = item. Аналогично про удаление элемента например. А так вообще не нужно конечно, пишите на ассемблере.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 01.04.2016 в 21:41. |
01.04.2016, 21:40 | #3 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
01.04.2016, 21:42 | #4 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
чтоб не писать велосипеды вечно. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
02.04.2016, 11:34 | #5 | |
Форумчанин
Регистрация: 29.06.2013
Сообщений: 132
|
Цитата:
Так вот какой резон тогда в этом случае применять метод .AddRange не понятно. Ведь это лишено всякого смысла: в динамический массив добавляем коллекцию вместо того, чтоб добавить необходимое количество элементов. Зачем? |
|
02.04.2016, 11:41 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Непонятно о чем вы.
Начальное capacity задавать не обязательно, только в целях оптимизации если вы заранее знаете сколько понадобится. .AddRange нужен чтоб не писать цикл только для того чтоб добавить больше 1 элемента (из другой коллекции и т.п.), что в нем непонятного? (ну и заодно AddRange наверно может уменьшить количество перевыделений памяти, чем если просто куча Add)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 02.04.2016 в 11:45. |
02.04.2016, 12:25 | #7 | |
Форумчанин
Регистрация: 29.06.2013
Сообщений: 132
|
Цитата:
|
|
02.04.2016, 12:33 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
какие конкретно коллекции вам непонятны?
отсутствие типизации у ArrayList играет злую шутку. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
02.04.2016, 12:36 | #9 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Вы о чем? Ничего непонятно.
А про AddRange, Код:
Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 02.04.2016 в 12:39. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
коллекции | RAIDER_90 | Общие вопросы по Java, Java SE, Kotlin | 1 | 17.04.2012 22:02 |
коллекции Джава | tanya_m43 | Помощь студентам | 1 | 28.01.2012 02:24 |
Java коллекции | programmm | Помощь студентам | 0 | 12.11.2011 22:37 |
Коллекции | van-ok | Помощь студентам | 0 | 25.12.2009 01:47 |
Коллекции | Mike777 | Общие вопросы Delphi | 0 | 19.02.2007 11:38 |