0 / 0 / 0
Регистрация: 05.11.2008
Сообщений: 27
|
|
1 | |
массив переменной длины18.02.2012, 11:56. Показов 4223. Ответов 13
Метки нет (Все метки)
Как в С++ сделать массив переменной длины (увеличивающийся), чтобы сохранялись хранящиеся там данные? Покопался, но нигде не могу найти.
Или где об этом почитать?
0
|
18.02.2012, 11:56 | |
Ответы с готовыми решениями:
13
Массив переменной длины Передать в C# массив переменной длины. Нужен массив переменной длины с возможностью добавления элементов Двумерный динамический массив char переменной длины, realloc() |
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
18.02.2012, 15:27 | 2 |
Если хочешь все самостоятельно сделать, то при увеличении размера массива создаешь новый и копируешь содержимое из старого в новый, старый массив удаляешь за ненадобностью.
А так используй vector из STL. Удачи, Владимир
0
|
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 73
|
|
18.02.2012, 23:30 | 3 |
Если не хочешь использовать STL, то смотри в сторону линейных списков.
http://cslibrary.stanford.edu/103/
0
|
1 / 1 / 2
Регистрация: 18.07.2010
Сообщений: 36
|
|
19.02.2012, 12:35 | 4 |
realloc блин
0
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
19.02.2012, 18:33 | 5 |
о! точно!
слушайся CoolGun'а, он дело сказал
0
|
0 / 0 / 1
Регистрация: 26.05.2009
Сообщений: 86
|
|
20.02.2012, 11:37 | 6 |
Правда автор говорил про С++, а если в масиве будут содержаться обькты классов, то при вызове realloc не будут вызываться конструкторы, что черевато.
0
|
1 / 1 / 2
Регистрация: 18.07.2010
Сообщений: 36
|
|
20.02.2012, 14:17 | 7 |
хранить в нем ссылки или указатели
в любом случае у обънеьа должен быть конструктор по умолчанию
0
|
0 / 0 / 1
Регистрация: 26.05.2009
Сообщений: 86
|
|
21.02.2012, 11:23 | 8 |
Создать масив не инициализированных ссылок нельзя. А во вторых тогда в ручную придеться создавать систему учета и удаления обьектов.
ЗЫ: просто зачем изобретать вилосипед, если можно воспользоваться готовым решением и причем с большой долей вероятности что оно будет работать лутше чем создашь.
0
|
Silver
|
|
21.02.2012, 11:29 | 9 |
А чем вам не нравится CArray или CPtrArray из MFC?
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
21.02.2012, 13:01 | 10 |
тем, что они из MFC
встречный вопрос: чем vector хуже CArray?
0
|
Silver
|
|
21.02.2012, 15:44 | 11 |
Сообщение от boombastik
P.S. Автор темы похоже уже удовлетворился чем-то |
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
21.02.2012, 16:32 | 12 |
не, автор задал вопрос и забыл на каком сайте он его задавал, вот теперь мучается
хотя не, судя по регистрации он уже почти 2 года тут тусуется, значит, видимо, просто времени нет принимать участие обсуждении проблемы
0
|
0 / 0 / 1
Регистрация: 26.05.2009
Сообщений: 86
|
|
22.02.2012, 11:18 | 13 |
ИМХО MFC использовать не стоит:
1. Это уже устаревшая библиотека. 2. Эта библиотека не поддерживается производителем. 3. CArray это контейнер указателей на общий класс в отличии от STL - библиотека шаблонов.
0
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
22.02.2012, 14:20 | 14 |
1. ну если уж смотреть на возраст, то та же STL старше MFC
2. неправда 3. не совсем понял формулировку Достоинств у STL перед MFC много, недостатков у MFC тоже полно, причин не использовать CArray можно назвать несколько, но из выше приведенныйх я бы не подписался ни под одной. С уважением, Владимир P.S. для агрумента пункта 2, чтобы не быть похожим на Василия: https://msdn.microsoft.com/vis... fault.aspx
0
|
22.02.2012, 14:20 | |
22.02.2012, 14:20 | |
Помогаю со студенческими работами здесь
14
Как передать из Delphi в функцию PL/SQL массив переменной длины? Как сделать массив (переменной длины) элементов управления в VBA? Организация формы ввода в массив записей заданной переменной длины Маски переменной длины Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |