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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.80
tvy2
0 / 0 / 0
Регистрация: 05.11.2008
Сообщений: 27
#1

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

18.02.2012, 11:56. Просмотров 2520. Ответов 13
Метки нет (Все метки)

Как в С++ сделать массив переменной длины (увеличивающийся), чтобы сохранялись хранящиеся там данные? Покопался, но нигде не могу найти.
Или где об этом почитать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2012, 11:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос массив переменной длины (C++):

Как организовать буффер переменной длины? - C++
Есть задача - отправлять в ком порт файл. Коней пакета 7E/ если в середине пакета находится символ 7Е - приемник смотрит перез ним...

Функцию со списком аргументов переменной длины, подсчитать произведение чисел - C++
ПОМОГИТЕ Написать программу, содержащую функцию со списком аргументов переменной длины. В функции необходимо подсчитать произведение...

Задано массив строк произвольной длины. Отформатировать данный массив по ширине поля. - C++
Задано массив строк произвольной длины. Отформатировать данный массив по ширине поля.

Записать в массив B длины всех серий исходного массива, а в массив C - значения элементов, образующих серии - C++
Ребята выручите пожалуйста) 1)Дан целочисленный массив A размера N. Назовем серией группу подряд идущих одинаковых элементов, а длиной...

STL: Создать массив длины N. Заполнить массив рандом. Найти все различные числа массива - C++
Создать массив длины N (число N вводится с клавиатуры). Заполнить массив случайными целыми числам. Найти все различные числа массива. Для...

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++
Динамические массивы привлекают больше. :)

13
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
18.02.2012, 15:27 #2
Если хочешь все самостоятельно сделать, то при увеличении размера массива создаешь новый и копируешь содержимое из старого в новый, старый массив удаляешь за ненадобностью.

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

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

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

Списки аргументов переменной длины, эти аргументы должны быть исключительно типа "int"? - C++
Действительно: #include <stdio.h> #include <stdarg.h> int foo (char* k,...) { va_list ap; va_start (ap, k); char x=...

C99 - массивы переменной длины - C++
Прочитал в википедии, что стандарт C99 предполагает поддержку массивов переменной длины. Признаться для меня это небольшой разрыв...

Массив символов неизвестной длины - C++
Добрый утро/день/вечер. Дело такое: вводится строка состоящая из слов и чисел(целых), разделяют все это безобразие разнообразные символы:...

Массив,нахождение отрезка max длины. - C++
Уважаемые пользователи!!Помогите пожалуйста с написанием программы!!Только начала изучение и пропустила лекцию о массивах ,но как известно...


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

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
22.02.2012, 14:20
Ответ Создать тему
Опции темы

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