Форум программистов, компьютерный форум CyberForum.ru

массив переменной длины - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.80
tvy2
0 / 0 / 0
Регистрация: 05.11.2008
Сообщений: 27
18.02.2012, 11:56     массив переменной длины #1
Как в С++ сделать массив переменной длины (увеличивающийся), чтобы сохранялись хранящиеся там данные? Покопался, но нигде не могу найти.
Или где об этом почитать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2012, 11:56     массив переменной длины
Посмотрите здесь:

как организовать буффер переменной длины C++
C++ Массив,нахождение отрезка max длины.
Заполнить двумерный массив неизвестной длины C++
Функцию со списком аргументов переменной длины, подсчитать произведение чисел C++
C++ Массив объектов класса неопределенной длины
C++ Задано массив строк произвольной длины. Отформатировать данный массив по ширине поля.
Списки аргументов переменной длины, эти аргументы должны быть исключительно типа "int"? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
18.02.2012, 15:27     массив переменной длины #2
Если хочешь все самостоятельно сделать, то при увеличении размера массива создаешь новый и копируешь содержимое из старого в новый, старый массив удаляешь за ненадобностью.

А так используй vector из STL.

Удачи, Владимир
TheBits
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 73
18.02.2012, 23:30     массив переменной длины #3
Если не хочешь использовать STL, то смотри в сторону линейных списков.
http://cslibrary.stanford.edu/103/
CoolGun
1 / 1 / 0
Регистрация: 18.07.2010
Сообщений: 36
19.02.2012, 12:35     массив переменной длины #4
realloc блин
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
19.02.2012, 18:33     массив переменной длины #5
о! точно!
слушайся CoolGun'а, он дело сказал
(Phantom)
0 / 0 / 0
Регистрация: 26.05.2009
Сообщений: 86
20.02.2012, 11:37     массив переменной длины #6
Правда автор говорил про С++, а если в масиве будут содержаться обькты классов, то при вызове realloc не будут вызываться конструкторы, что черевато.
CoolGun
1 / 1 / 0
Регистрация: 18.07.2010
Сообщений: 36
20.02.2012, 14:17     массив переменной длины #7
хранить в нем ссылки или указатели
в любом случае у обънеьа должен быть конструктор по умолчанию
(Phantom)
0 / 0 / 0
Регистрация: 26.05.2009
Сообщений: 86
21.02.2012, 11:23     массив переменной длины #8
Создать масив не инициализированных ссылок нельзя. А во вторых тогда в ручную придеться создавать систему учета и удаления обьектов.

ЗЫ: просто зачем изобретать вилосипед, если можно воспользоваться готовым решением и причем с большой долей вероятности что оно будет работать лутше чем создашь.
Silver
Сообщений: n/a
21.02.2012, 11:29     массив переменной длины #9
А чем вам не нравится CArray или CPtrArray из MFC?
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
21.02.2012, 13:01     массив переменной длины #10
тем, что они из MFC
встречный вопрос: чем vector хуже CArray?
Silver
Сообщений: n/a
21.02.2012, 15:44     массив переменной длины #11
Цитата Сообщение от boombastik
тем, что они из MFC
встречный вопрос: чем vector хуже CArray?
Не хуже.
P.S. Автор темы похоже уже удовлетворился чем-то
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
21.02.2012, 16:32     массив переменной длины #12
не, автор задал вопрос и забыл на каком сайте он его задавал, вот теперь мучается

хотя не, судя по регистрации он уже почти 2 года тут тусуется, значит, видимо, просто времени нет принимать участие обсуждении проблемы
(Phantom)
0 / 0 / 0
Регистрация: 26.05.2009
Сообщений: 86
22.02.2012, 11:18     массив переменной длины #13
ИМХО MFC использовать не стоит:
1. Это уже устаревшая библиотека.
2. Эта библиотека не поддерживается производителем.
3. CArray это контейнер указателей на общий класс в отличии от STL - библиотека шаблонов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2012, 14:20     массив переменной длины
Еще ссылки по теме:

Заполнить массив нулями до определенной длины C++
C++ Двумерный динамический массив со строками разной длины
C++ Выделить память под массив неизвестной длины
Массив символов неизвестной длины C++
Записать в массив B длины всех серий исходного массива, а в массив C - значения элементов, образующих серии C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
22.02.2012, 14:20     массив переменной длины #14
1. ну если уж смотреть на возраст, то та же STL старше MFC
2. неправда
3. не совсем понял формулировку

Достоинств у STL перед MFC много, недостатков у MFC тоже полно, причин не использовать CArray можно назвать несколько, но из выше приведенныйх я бы не подписался ни под одной.

С уважением,
Владимир

P.S. для агрумента пункта 2, чтобы не быть похожим на Василия:

http://msdn.microsoft.com/visualc/pr...q/default.aspx

Will Microsoft continue to support and add features to MFC?
Microsoft has no plans to discontinue support for MFC. New features will in most cases enable MFC applications to better interoperate with the .NET Framework.
Yandex
Объявления
22.02.2012, 14:20     массив переменной длины
Ответ Создать тему
Опции темы

Текущее время: 06:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru