![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
В общем случае чтобы создать динамический массив, то это делается так:
А как сделать так чтобы переменную mas не заново определять, а к текущеё добавить или убрать нужное кол-во элементов. Хорошо бы если за место функции new была бы функция редактирования кол-ва элементов, как в делфи с помощью функции SetLength можно устанавливать в любой момент времени нужнок кол-во элементов. |
|||
|
||||
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
использовать vector из stl.
Это сообщение отредактировал(а) Mayk - 6.10.2005, 21:12 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Ето, как оно... А с массивом не как нельзя, а то я в дальшейшем планирую массив использовать с типом class
|
|||
|
||||
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Афаир нет(если не рассматривать изобретение велосипедов).
А что мешает использовать вектор классов а ля vector<MyClass>? -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Блин, и чем все этот С++ расхваливают... Ничего по человечески нельзя сделать. Вот делфи тама всё просто, написал
B всё зашибись... А тут всё через ж....у ![]() Ладно, буду использовать массив на 1000 элементов... Но если кто найдёт, альтернативу функции SetLength, то пишите... И именно с массивами... ![]() |
|||
|
||||
Mayk |
|
||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
А что, вектор чем-то очень сильно отличается от массива? Не так давно уже был спор на тему вектор против массива. Советую посмотреть.
млин, я тебе пример привёл
Можешь realloc юзать, но это си(и соотсно malloc/free вместо new/delete), а не плюсы, и при использовании его в плюсах могут быть серьезные проблемы(operator = и всё такое) ps. я так и не понял почему vector<Class> не подходит, а Class [] подходит. Это сообщение отредактировал(а) Mayk - 6.10.2005, 22:19 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||
|
|||||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Ладно, буду делать с векторами...
![]() Это сообщение отредактировал(а) Zero - 7.10.2005, 08:12 |
|||
|
||||
Helicopterr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 20.8.2005 Где: Stavropol Репутация: 2 Всего: 3 |
сперва почитай, потом делай выводы, всё не так уж и "нахрен"
-------------------- people can fly |
|||
|
||||
Mayk |
|
||||||||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Кто? Где? делают помойку? Нет никакой помойки. Как бы ни было язык С++ не могут любить за то, что он походит на делфи. Это я к
Дельфи - это дельфи. С++ - это С++. Хвалить язык за похожесть на другой по крайне мере не разумно. По крайне мере в контексте с/паскаль.
"К проклятьям не прибегну и сдержусь" (с) Просто посоветую выбирать выражения.
По-моему это гораздо лучше, чем не зная языка кричать "язык - ацтой, в нем setsize'а нет". Это сообщение отредактировал(а) Mayk - 6.10.2005, 22:42 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||||||||
|
|||||||||||||
bel_nikita |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
![]()
А чего тогда из Делфи в этот С++ лезешь? ![]() ![]()
З.Ы.: учимся пользоваться поиском З.Ы.Ы.: тему в мусорку |
||||
|
|||||
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Блин чо реально было спор вектор vs массив?
Вектор и есть массив.!!!! Он практически ничем не отличается от массива. Если судить по свойсвам. Свойсва массива в том что все элементы расположены друг за другом.
У тебя ничего не сотрется. Стирается после выполнения delete У тебя mas будет указывать уже на новую память. И ПРОИЗОЙДЕТ УТЕЧ КА ПАМЯТИ. Си всегда рвал Дельфи как шарик грелку. Я не помню чтобы хоть один нормальный проект писали на дельфях. Это сообщение отредактировал(а) Neitron - 7.10.2005, 09:43 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
http://forum.vingrad.ru/index.php?showtopi...w=all&hl=vector вот здесь немного было. Совсем чуть-чуть, но было.
Хех, не советую говорить подобное в разделе по дельфи. Уверен, у них подготовлена бумажка, на которой записаны названия программ написанных на дельфях. ![]() Это сообщение отредактировал(а) Mayk - 7.10.2005, 09:52 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
ГЫыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыы=) -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
En_t_end |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Mayk
Не вижу проблем. Перевыделение или добавление памяти под массив - это нормальная практика... кстати в тестах по С++, бывает проскакивает такой вопрос. Zero
Дело в том, что этот SetLenght 100% был написан на Си, причем на основе того же realloc, но, используя скорее всего тучу лишних действий. ЗЫ товарищ Zero, если вы будете продолжать "хаять" С++, то я думаю скоро вам вообще здесь перестанут помогать. Либо критикуйте конструктивно, либо не критикуйте вовсе.
"Тама" у "васа" в "Дельфя" в "тома" и проблема, что все "така" "проста". |
||||||
|
|||||||
Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Проблема раз - не всякий класс можно просто так взять и сдвинуть(например, к которому обращаются извне). Другой вопрос что такой класс делает в массиве, но ситуацию придумать можно. Проблема два - realloc(по Святому Стандарту) вовсе не обязан вызывать ::operator new для выделения памяти. В частности это значит, что если мы перегрузим new/delete(зачем - обсуждается в соседней ветке), то у нас будут проблемы - delete получит указатель не от new. Привет, дебагер.
Из Small C был получен C. Не знаю насчёт дельфи, но имхо он вполне мог быть написан на пасе. Менеджер памяти имхо написать на дельфях можно. Ф-ция по аллоканию памяти есть в оси. А если учесть тот факт, что существуют оси написанные на пасе, то очень вероятно предположить, что setlength мог быть написан не на си. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |