156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185
|
|
1 | |
Есть ли в С++ динамические массивы?12.07.2014, 21:08. Показов 3840. Ответов 54
Метки нет (Все метки)
Я сначала подобный вопрос задал поисковой
системе. Ответ меня обескуражил. Ответы примерно такие: 1. Нет и не было. 2. Кажется есть оператор New 3. Есть динамическая память 4. Что-то есть, а вам зачем? Мне все-таки хочется узнать, а лучше Небольшой конкретный пример, что есть?? И как это использовать?? Что надо подключить??
0
|
12.07.2014, 21:08 | |
Ответы с готовыми решениями:
54
Зачем нужны обычные массивы, если есть динамические? Есть динамические массивы А и Б. Создать массив С,который состоит из элементом массива А,которых нет в массиве Б Динамические массивы и функции. Динамические массивы. Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) |
Неэпический
|
||||||
12.07.2014, 23:50 | 43 | |||||
о том что выделенная динамически память сама по себе динамической(расширяемой) не является. Она динамическая только из-за "класса памяти", а не из-за расширяемости. Вектор же просто "оборачивает" всё это, создавая необходимое поведение. В понятия самого языка нет динамических массивов. Если бы были, это выглядело бы как-то так:
Да и спор этот бесполезный, потому что с одной стороны вектор - динамический массив(точнее последовательный контейнер), а с другой стороны в самом языке нет динамических массивов.
2
|
13.07.2014, 00:19 | 44 |
Вы процитировали меня где я говорил про массив, а не про вектор.
Добавлено через 3 минуты А я и не говорил что массив. Кстати разве приведенный класс MFC - массив?
0
|
13.07.2014, 00:34 | 47 |
Ну так вектор, это класс библиотеки, так что в качестве противовеса не годится, поэтому я сказал что его нет...
На то он и вектор что вектор а не какой-то там СArray Ну так я как бы ничего противоположного не утверждал, что бы меня цитировать
0
|
Master of Orion
|
|
13.07.2014, 02:43 | 48 |
Блин, ребят, хватит спорить о том, что круче - структура данных или её реализация в конкретном языке
А вообще внезапно вопровусь и скажу, что динамический массив - это вообще бредовое определение, которым вне стен университетов этой страны особо не пользуются. Есть понятие массива - структура данных неизменяемого размера с прямым доступом к элементам. Выделили мы её динамически или еще как - структура статична. Есть понятие списка - можем добавлять/удалять элементы в рантайме, длина не задается фиксированной. Динамический массив получается чем-то среднем, вроде списка с прямым индексным доступом, но с точки зрения теории структур данных такой структуры не существует И да, списки часто реализуются как массивы, реаллокирующие память по мере необходимости.
0
|
Master of Orion
|
|
13.07.2014, 03:29 | 50 |
gru74ik, при чем тут стандарт языка? Стандарты могут различаться и даже противоречить друг другу. Можно конечно сказать, что "это раздел С++ поэтому это истина в последней инстанции". В таком случае "динамический массив" можно означать что угодно, в зависимости от вкладываемого в слово "динамический" смысл.
Но с точки зрения информатики такой структуры данных не существует, поэтому спор ни о чем. Есть списки, есть массивы, каждый выбирает, что для текущей задачи лучше! всем бобра.
0
|
Модератор
|
|
13.07.2014, 04:10 | 51 |
Согласен. Просто эта путаница идёт из учёбной литературы, в которой это словосочетание используется. Новичкам в С++ (типа меня и ТС) до вот такого топика-холивара проблема применения термина dynamic array в разных контекстах вообще была неведома. Я как у Праты прочитал, так и считал, что динамический массив - это та самая хреновина с операторами new и delete, а контейнер vector - просто более удобный его вариант, с кучей методов.
У Страуструпа в четвёртом издании его "C++ programming language" этот термин появляется только один раз и там он как раз советует использовать векторы (стр. 1277):
2
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
13.07.2014, 05:52 | 52 |
Язык-прайм является таким языком, в котором запрещено слово "является".
По-моему бред какой-то. Каждый язык состоит из слов, которые обозначают понятия и сущности. А как мы можем их определить без слова "является"? Т.е. это язык, отрицающий сам себя.
0
|
Croessmah
|
13.07.2014, 06:18
#53
|
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
13.07.2014, 06:22 | 54 |
А, почитал дальше, они предлагают заменить слово "является" на "кажется". А синонимы слова "кажется" - это чудится, бредится и мерещится. Т.е. этот язык предлагает нам погрузиться в состояние бреда.
0
|
Модератор
|
|
13.07.2014, 09:37 | 55 |
А Вы уже успешно заменили действие "мыслю" на "не поняв предмета, куражусь, утрирую, раздуваю своё ЧСВ" - что уж скажешь, похоже, Вам есть чем гордиться!
0
|
13.07.2014, 09:37 | |
13.07.2014, 09:37 | |
Помогаю со студенческими работами здесь
55
Структуры, массивы, указатели, динамические массивы структур Статические массивы,Динамические массивы,строки Динамические массивы Динамические массивы Динамические массивы Динамические массивы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |