Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 15.02.2025
Сообщений: 10

Является ли vector примером динамического массива?

17.02.2025, 19:33. Показов 8105. Ответов 72
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Является ли vector примером динамического массива? Вопрос может звучать странно и я вижу в нем однозначный ответ, что вектор все таки является примером динамического массива, но все равно, хотелось бы убедиться, потому что мнения в интернете расходятся (Готовлюсь к зачету в унике, вопросы по теории это бред, из-за формулировки некоторых нельзя дать однозначный ответ, поэтому не бейте палками)

В каких строках приведен пример динамического массива?
C++
1
2
3
4
int* arr = new int [M]{ 0 };
 vector <double> vec= {1.4, 2.0, 3.9, 4.1};
 char arr[4]{ 'k', 'b', 'c', '_' };
 char* vec = new int[6];
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.02.2025, 19:33
Ответы с готовыми решениями:

Является ли такое решение задачи примером динамического программирования?
Задали такую задачку: У вас есть несколько камней известного веса W1, …, Wn. Напишите программу, которая распределит камни в две кучи...

Что является причиной ошибки после завершения всех операций? (динамический массив)
Что является причиной ошибки после завершения всех операций? (динамический массив) #include &lt;iostream&gt; #include...

Собственный динамический массив (аналог std::vector)
Вот возникла идея написать что-то на подобии вектора, но возникла проблема что не так с kallocSize? Почему компилятор ее не пропускает? А...

72
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,534
19.02.2025, 13:33
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Если мне не нужны проверки я лучше обычный массив буду юзать.
окей, а если размер не известен в рантайме? что будешь делать? писать
C++
1
int arr[4096];
и рассчитывать на авось???

Добавлено через 4 минуты
CoderHuligan, можно, конечно, использовать int* arr = new int[meow], но если в векторе реализованы все нужные функции и не нужно чистить память, то почему не использовать именно вектор?
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
19.02.2025, 14:11
Цитата Сообщение от KSergey9 Посмотреть сообщение
Зачем, если вектор очень удобно, красиво и волшебно
Так я ж не против вектора, как такового. Я только за. Просто я указываю, что не всегда он безопасен.
Цитата Сообщение от Royal_X Посмотреть сообщение
окей, а если размер не известен в рантайме? что будешь делать?
Что касается обычных массивов. Обычно я выделяю столько памяти, сколько может потребоваться в худшем случае. И завожу отдельную переменную, которая хранит текущую длину массива. Обычно, возможный размер нужно оценить аналитически. Всегда можно найти какое-то ограничение.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.02.2025, 14:15
Хулиган, ну так что, стоит авторасширение вектора при доступе по индексу того???
Каким способом, на данный момент не важно. Композицией, наследованием, адаптером.
Вот стоит? )

Добавлено через 1 минуту
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Всегда можно найти какое-то ограничение.
Не понял?
Это как?
Вот ты читаешь файл. Какое ограничение массива ты поставишь?))
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
19.02.2025, 14:18
Цитата Сообщение от SmallEvil Посмотреть сообщение
стоит авторасширение вектора при доступе по индексу того???
Может быть не стоит. Но я опять повторю: это было бы лучше, чем запись неизвестно куда.

Добавлено через 2 минуты
Цитата Сообщение от SmallEvil Посмотреть сообщение
от ты читаешь файл. Какое ограничение массива ты поставишь?))
Проще простого. Читаем файл по частям через буфер. Размер буфера зависит от возможных условий. Неудачный пример, так как размер файла у нас всегда под рукой.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.02.2025, 14:19
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Но я опять повторю: это было бы лучше, чем запись неизвестно куда.
Чем лучше?
Никакой класс, контейнер или интерфейс не убережет от логических ошибок.
Что в лоб что по лбу. Одинаково.
Что программа закрешится что повиснет, пытаясь выделить тучу памяти или будет крутить непонятно что.

Добавлено через 32 секунды
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Неудачный пример, так как размер файла у нас всегда под рукой.
Есть такое. Но, вижу, суть ты понял.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
19.02.2025, 14:29
Цитата Сообщение от SmallEvil Посмотреть сообщение
Что программа закрешится что повиснет, пытаясь выделить тучу памяти или будет крутить непонятно что.
Ага. Лучше пусть выделит тучу памяти, чем незаметно покрашит чужие данные. Всё-таки это будет заметнее.
Но такая ошибка редкость.
Цитата Сообщение от SmallEvil Посмотреть сообщение
Но, вижу, суть ты понял.
Понял. Например ввод юзверем каких-то данных. Или по сети. Опять же: всегда надо кого-то или что-то ограничивать. То есть в правилах прописывать, что допустим строка не должна превышать... и т.д.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
19.02.2025, 14:36
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Обычно я выделяю столько памяти, сколько может потребоваться в худшем случае.
Хорошо когда память по 3 рубля вёдрами, а задачи нетребовательны к объёмам

Цитата Сообщение от CoderHuligan Посмотреть сообщение
То есть в правилах прописывать, что допустим строка не должна превышать... и т.д.
И отчества нормировать. По длине.
И размер банковских счетов, кстати, тоже. Поддерживаю! А то порой в double не лезет.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,534
19.02.2025, 14:38
CoderHuligan, пиши лучше сапер свой) Зря ты полез в эти бессмысленные дискуссии.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.02.2025, 14:45
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Ага. Лучше пусть выделит тучу памяти, чем незаметно покрашит чужие данные. Всё-таки это будет заметнее.
Не чужие. А свои. Этого же приложения.
Как ни крути, а оно все равно загнется. И придется юзверю его вырубать, если получится.

Лучше пусть программисты думают головой.
А не "динамическими массивами".
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
19.02.2025, 14:52
Цитата Сообщение от Royal_X Посмотреть сообщение
А он может вводить много, допустим 16+ млн символов (и это еще не предел).
И сколько же времени ему потребуется чтобы ввести 16 млн символов? 16 млн лет?
Достаточно завести буфер экрана, размером примерно равным максимальному количеству символов, которое может вместить один экран. И работать через буфер. Остальное сбрасывать в файл и брать из файла или из базы данных, что гораздо лучше.

Добавлено через 1 минуту
Цитата Сообщение от SmallEvil Посмотреть сообщение
Не чужие. А свои.
Согласен.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.02.2025, 15:05
Цитата Сообщение от CoderHuligan Посмотреть сообщение
И сколько же времени ему потребуется чтобы ввести 16 млн символов?
Хороший софт это не должно интересовать.
Данные могут подаваться из другой программы, другим контекстом и т.д.
Дело твоей программы эти данные получить и обработать.
А не поднять лапки вверх и сказать: "Тилли-тилли, тралли-вали, энто мы не проходили, энто нам не задавали".
В лучшем случаи сказать, а в худшем тупо обрезать и потерять все остальные данные - красава.

Добавлено через 1 минуту
По теме.
Динамические массивы - хорошо.
Пока от них не хотят что бы они были умнее программистов)
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,534
19.02.2025, 15:17
CoderHuligan, открою тебе секрет, можно вставлять 16 млн с помощью Ctrl+V
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.02.2025, 15:21
Да, и ещё, при любом ресайзе, возможна реалокация данных и, барабаня дробь, ВСЕ итераторы станут инвалидными.
Вот это поворот! Красота.
Что опять? Лезем куда не нужно и крешимся )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.02.2025, 15:21

Скорость работы std::vector и обычного динамического массива
Всем привет! Есть задача по мат.моделированию, размер сетки 100х50. Использовались обычные динамические массивы: double ***n; ...

Динамические массивы типа vector и array
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;array&gt; #include &lt;string&gt; using namespace std; int main() { const int...

Как правильно записывать в динамический массив типа класса обьекты? вот банальный пример
#pragma once #include &quot;iostream&quot; namespace Program { class Book { typedef unsigned int ui; private:

Реализовать шаблон класса vector, реализующий динамический массив
Реализовать шаблон класса vector, реализующий динамический массив. Определить 2 объекта класса vector и внешнюю функцию, выполняющую...

На основе контейнера vector построить двумерный динамический массив
Каким образом можно один двумерный массив скопировать в другой?С помощью copy() не получается На основе контейнера vector построить...


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

Или воспользуйтесь поиском по форуму:
73
Ответ Создать тему
Новые блоги и статьи
После бана на Пикабу не работает авторизация аккаунта с Яндекса.
Hrethgir 09.07.2026
В частности https:/ / auto. ru/ logbook/ zapret-na-vozhdenie-posle-65-let_1cf28789-07b4-4c75-a2f7-4cd4edf9deeb тут хотел оставить комментарий такой Зрите в корень - монополизация на разработку программ. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru