Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/22: Рейтинг темы: голосов - 22, средняя оценка - 4.77
156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185

Есть ли в С++ динамические массивы?

12.07.2014, 21:08. Показов 5240. Ответов 54
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я сначала подобный вопрос задал поисковой
системе. Ответ меня обескуражил. Ответы
примерно такие:
1. Нет и не было.
2. Кажется есть оператор New
3. Есть динамическая память
4. Что-то есть, а вам зачем?
Мне все-таки хочется узнать, а лучше
Небольшой конкретный пример, что есть??
И как это использовать?? Что надо подключить??
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.07.2014, 21:08
Ответы с готовыми решениями:

Зачем нужны обычные массивы, если есть динамические?
Всем привет! Вопрос в заголовке. Если динамический массив даёт те же и ещё больше функций и, при том, лучше обращается с памятью, зачем...

Есть динамические массивы А и Б. Создать массив С,который состоит из элементом массива А,которых нет в массиве Б
Доброго времени суток , у меня есть код,который частично выполняет данную задачу для статического массива, но как переделать его под...

Динамические массивы и функции. Динамические массивы.
Дана матрица 6х8 целого типа. Создать одномерный массив, содержащий элементы матрицы, кратные числу, введенному с клавиатуры.

54
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
12.07.2014, 23:41
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Avazart Посмотреть сообщение
В C++ массив выделенный динамически и называется динамическим, ибо других альтернатив ему нет.
Из динамического у него только dynamic storage duration. То, что вектор может динамически расширяться - заслуга вектора, а не динамических массивов.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.07.2014, 23:46
Цитата Сообщение от Croessmah Посмотреть сообщение
Из динамического у него только dynamic storage duration. То, что вектор может динамически расширяться - заслуга вектора, а не динамических массивов.
Вы о чем ?
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
12.07.2014, 23:50
Цитата Сообщение от Avazart Посмотреть сообщение
Вы о чем ?
о том что выделенная динамически память сама по себе динамической(расширяемой) не является. Она динамическая только из-за "класса памяти", а не из-за расширяемости. Вектор же просто "оборачивает" всё это, создавая необходимое поведение. В понятия самого языка нет динамических массивов. Если бы были, это выглядело бы как-то так:
C++
1
2
int arr[] ;
arr[100] = 300 ;
Цитата Сообщение от Avazart Посмотреть сообщение
открой для себя std::map<>
это явно не массив.


Да и спор этот бесполезный, потому что с одной стороны вектор - динамический массив(точнее последовательный контейнер), а с другой стороны в самом языке нет динамических массивов.
2
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
13.07.2014, 00:19
Цитата Сообщение от Croessmah Посмотреть сообщение
Вектор же просто "оборачивает" всё это, создавая необходимое поведение
Вы процитировали меня где я говорил про массив, а не про вектор.

Добавлено через 3 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
это явно не массив.
А я и не говорил что массив.
Кстати разве приведенный класс MFC - массив?
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
13.07.2014, 00:30
Цитата Сообщение от Avazart Посмотреть сообщение
Кстати разве приведенный класс MFC - массив?
Без понятия, никогда им не пользовался, но называется CArray
Цитата Сообщение от Avazart Посмотреть сообщение
Вы процитировали меня где я говорил про массив, а не про вектор.
Ну так сюда я вектор вставил для противовеса.
А так акцент был на:
о том что выделенная динамически память сама по себе динамической(расширяемой) не является.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.07.2014, 00:30
Может вот это поможет нам лучше понять друг друга?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
13.07.2014, 00:34
Цитата Сообщение от Croessmah Посмотреть сообщение
Ну так сюда я вектор вставил для противовеса.
Ну так вектор, это класс библиотеки, так что в качестве противовеса не годится, поэтому я сказал что его нет...
На то он и вектор что вектор а не какой-то там СArray
Цитата Сообщение от Croessmah Посмотреть сообщение
А так акцент был на:
Цитата Сообщение от Croessmah Посмотреть сообщение
о том что выделенная динамически память сама по себе динамической(расширяемой) не является.
Ну так я как бы ничего противоположного не утверждал, что бы меня цитировать
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
13.07.2014, 02:43
Блин, ребят, хватит спорить о том, что круче - структура данных или её реализация в конкретном языке

А вообще внезапно вопровусь и скажу, что динамический массив - это вообще бредовое определение, которым вне стен университетов этой страны особо не пользуются. Есть понятие массива - структура данных неизменяемого размера с прямым доступом к элементам. Выделили мы её динамически или еще как - структура статична. Есть понятие списка - можем добавлять/удалять элементы в рантайме, длина не задается фиксированной.

Динамический массив получается чем-то среднем, вроде списка с прямым индексным доступом, но с точки зрения теории структур данных такой структуры не существует

И да, списки часто реализуются как массивы, реаллокирующие память по мере необходимости.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.07.2014, 03:25
Цитата Сообщение от Psilon Посмотреть сообщение
динамический массив - это вообще бредовое определение
Бредовое не бредовое, а в стандарте словосочетание dynamic array имеет место быть:

INCITS+ISO+IEC+14882-2003, страница 712:
The classstrstreambuf associates the input sequence, and possibly the output sequence, with an object
of some character array type, whose elements store arbitrary values. The array object has several
attributes.
2 [Note:For the sake of exposition, these are represented as elements of a bitmask type (indicated here asT1)
calledstrstate. The elements are:
—allocated, set when a dynamic array object has been allocated, and hence should be freed by the
destructor for the strstreambuf object;
—constant, set when the array object has const elements, so the output sequence cannot be written;
—dynamic, set when the array object is allocated (or reallocated) as necessary to hold a character
sequence that can change in length;
—frozen, set when the program has requested that the array object not be altered, reallocated, or freed.
—end note]
3 [Note:For the sake of exposition, the maintained data is presented here as:
—strstate strmode, the attributes of the array object associated with the strstreambuf object;
—intalsize, the suggested minimum size for a dynamic array object;
—void* (*palloc)(size_t), points to the function to call to allocate a dynamic array object;
—void (*pfree)(void*), points to the function to call to free a dynamic array object. —end note]
4 Each object of classstrstreambuf has aseekable area, delimited by the pointers seeklow and
seekhigh. If gnextis a null pointer, the seekable area is undefined. Otherwise, seeklow equals
gbegand seekhighis eitherpend, ifpendis not a null pointer, orgend.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
13.07.2014, 03:29
gru74ik, при чем тут стандарт языка? Стандарты могут различаться и даже противоречить друг другу. Можно конечно сказать, что "это раздел С++ поэтому это истина в последней инстанции". В таком случае "динамический массив" можно означать что угодно, в зависимости от вкладываемого в слово "динамический" смысл.

Но с точки зрения информатики такой структуры данных не существует, поэтому спор ни о чем. Есть списки, есть массивы, каждый выбирает, что для текущей задачи лучше!

всем бобра.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.07.2014, 04:10
Цитата Сообщение от Psilon Посмотреть сообщение
Но с точки зрения информатики такой структуры данных не существует, поэтому спор ни о чем. Есть списки, есть массивы, каждый выбирает, что для текущей задачи лучше!
Согласен. Просто эта путаница идёт из учёбной литературы, в которой это словосочетание используется. Новичкам в С++ (типа меня и ТС) до вот такого топика-холивара проблема применения термина dynamic array в разных контекстах вообще была неведома. Я как у Праты прочитал, так и считал, что динамический массив - это та самая хреновина с операторами new и delete, а контейнер vector - просто более удобный его вариант, с кучей методов.

У Страуструпа в четвёртом издании его "C++ programming language" этот термин появляется только один раз и там он как раз советует использовать векторы (стр. 1277):
Variable-length arrays (VLAs); use vector or some form of dynamic array
но что это за "some form of dynamic array"? Самописный аналог вектора? Или что-то иное?
2
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
13.07.2014, 05:52
Цитата Сообщение от gru74ik Посмотреть сообщение
Может вот это поможет нам лучше понять друг друга?
Язык-прайм является таким языком, в котором запрещено слово "является".
По-моему бред какой-то. Каждый язык состоит из слов, которые обозначают понятия и сущности. А как мы можем их определить без слова "является"? Т.е. это язык, отрицающий сам себя.
0
13.07.2014, 06:18

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
Просто эта путаница идёт из учёбной литературы, в которой это словосочетание используется.
ИМХО, еще больше путаницы с сочетанием "статическая переменная", то есть та, которая автоматическая.

0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
13.07.2014, 06:22
А, почитал дальше, они предлагают заменить слово "является" на "кажется". А синонимы слова "кажется" - это чудится, бредится и мерещится. Т.е. этот язык предлагает нам погрузиться в состояние бреда.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.07.2014, 09:37
Цитата Сообщение от Mr.X Посмотреть сообщение
они предлагают заменить слово "является" на "кажется". А синонимы слова "кажется" - это чудится, бредится и мерещится. Т.е. этот язык предлагает нам погрузиться в состояние бреда.
А Вы уже успешно заменили действие "мыслю" на "не поняв предмета, куражусь, утрирую, раздуваю своё ЧСВ" - что уж скажешь, похоже, Вам есть чем гордиться!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.07.2014, 09:37

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц)
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....

Структуры, массивы, указатели, динамические массивы структур
Помогите с решением задачи (прикрепляю условие). Заранее спасибо.

Статические массивы,Динамические массивы,строки
1)Создать двумерный массив A(N,M) целых положительных и отрицательных чисел с помощью функции Random. Найти произведение всех четных...

Динамические массивы
Доброго времени, ищу помощи по данному вопросу, сам разобраться не в состоянии в виду полного отсутствия знания языка. Для матрицы А...

Динамические массивы
Создать класс Organization. Переменная типа Organization должна содержать следующую информацию: название; адрес; директор; телефон....


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

Или воспользуйтесь поиском по форуму:
55
Закрытая тема Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru